tag:blogger.com,1999:blog-72698749782533423632009-06-19T09:25:46.975+08:00humen1 TechPHP是我的选择,随之而来的是FreeBSD和Linux。现在摆在我面前的。。。还有Flash&Fms。下一步会是什么呢?humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.comBlogger173125tag:blogger.com,1999:blog-7269874978253342363.post-13318770308987081232009-06-19T09:25:00.001+08:002009-06-19T09:25:12.018+08:00邮箱地址快速搜索软件hy.><p class="mobile-photo"><a href="http://www.humen1.com/uploaded_images/022-712020-712063.jpg"><img src="http://www.humen1.com/uploaded_images/022-712020-712061.jpg" border="0" alt="" /></a></p> <div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-1331877030898708123?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-3455892685769903122009-06-16T14:19:00.001+08:002009-06-16T14:19:55.305+08:00金刚经वज्रच्छेदिका नाम त्रिशतिका प्रज्ञापारमिता।<p>॥नमो भगवत्या आर्यप्रज्ञापारमितायै॥<p><p>एवं मया श्रुतम्। एकस्मिन् समये भगवान् श्रावस्त्यां विहरति स्म<br>जेतवनेऽनाथपिण्डदस्यारामे महता भिक्षुसंघेन सार्थं त्रयोदशभिर्भिक्षुशतैः<br>संबहुलैश्च बोधिसत्त्वैर्महासत्त्वैः। अथ खलु भगवान् पूर्वाह्णकालसमये<br>निवास्य पात्रचीवरमादाय श्रावस्तीं महानगरीं पिण्डाय प्राविक्षत्। अथ खलु<br>भगवान् श्रावस्तीं महानगरीं पिण्डाय चरित्वा कृतभक्तकृत्यः<br>पश्चाद्भक्तपिण्डपातप्रतिक्रान्तः पात्रचीवरं प्रतिशाम्य पादौ प्रक्षाल्य<br>न्यषीदत्प्रज्ञप्त एवासने पर्यङ्कमाभुज्य ऋजुं कायं प्रणिधाय प्रतिमुखीं<br>स्मृतिमुपस्थाप्य। अथ खलु संबहुला भिक्षवो येन भगवांस्तेनोपसंक्रामन्।<br>उपसंक्रम्य भगवतः पादौ शिरोभिरभिवन्द्य भगवन्तं त्रिष्प्रदक्षिणीकृत्य<br>एकान्ते न्यषीदन्॥१॥<p><p>तेन खलु पुनः समयेनायुष्मान् सुभुतिस्तस्यामेव पर्षदि<br>संनिपतितोऽभूत्संनिषण्णः। अथ खल्वायुष्मान्<br>सुभूतिरुत्थायासनादेकांसमुत्तरासङ्गं कृत्वा दक्षिणं जानुमण्डलं<br>पृथिव्यां प्रतिष्ठाप्य येन भगवांस्तेनाञ्जलिं प्रणम्य भगवन्तमेतदवोचत्-<br>आश्चर्यं भगवन्, परमाश्चर्यं सुगत, यावदेव तथागतेनार्हता सम्यक्संबुद्धेन<br>बोधिसत्त्वा महासत्त्वा अनुपरिगृहीताः परमेणानुग्रहेण। आश्चर्यं भगवन्<br>यावदेव तथागतेनार्हता सम्यक्संबुद्धेन बोधिसत्त्वा महासत्त्वाः<br>परीन्दिताः परमया परीन्दनया। तत्कथं भगवन् बोधिसत्त्वयानसंप्रस्थितेन<br>कुलपुत्रेण वा कुलदुहित्रा वा स्थातव्यं कथं प्रतिपत्तव्यं कथं चित्तं<br>प्रग्रहीतव्यम् ?<p><p>एवमुक्ते भगवानायुष्मन्तं सुभूतिमेतदवोचत्- साधु साधु सुभूते,<br>एवमेतत्सुभूते, एवमेतद्यथा वदसि। अनुपरिगृहीतास्तथागतेन बोधिसत्त्वा<br>महासत्त्वाः परमेणानुग्रहेण। परीन्दितास्तथागतेन बोधिसत्त्वा महासत्त्वाः<br>परमया परीन्दनया। तेन हि सुभूते शृणु, साधु च सुष्ठु च मनसि कुरु,<br>भाषिष्येऽहं ते-यथा बोधिसत्त्वयानसंप्रस्थितेन स्थातव्यं यथा<br>प्रतिपत्तव्यं यथा चित्तं प्रग्रहीतव्यम्। एवं भगवन् इत्यायुष्यान्<br>सुभूतिर्भगवतः प्रत्यश्रौषीत्॥२॥<p><p>भगवानस्यैतदवोचत्-इह सुभूते बोधिसत्त्वयानसंप्रस्थितेनैव<br>चित्तमुत्पादयितव्यम्-यावन्तः सुभूते सत्त्वाः सत्त्वधातौ सत्त्वसंग्रहेण<br>संगृहीता अण्डजा वा जरायुजा वा संस्वेदजा वा औपपादुका वा रूपिणो वा<br>अरूपिणो वा संज्ञिनो वा असंज्ञिनो वा नैवसंज्ञिनो नासंज्ञिनो वा, यावान्<br>कश्चित्सत्त्वधातुः प्रज्ञप्यमानः प्रज्ञप्यते, ते च मया सर्वेऽनुपधिशेषे<br>निर्वाणधातौ परिनिर्वापयितव्याः। एवमपरिमाणानपि सत्त्वान् परिनिर्वाप्य न<br>कश्चित्सत्त्वः परिनिर्वापितो भवति। तत्कस्य हेतोः ? सचेत्सुभूते<br>बोधिसत्त्वस्य सत्त्वसंज्ञा प्रवर्तेत, न स बोधिसत्त्व इति वक्तव्यः।<br>तत्कस्य हेतोः ? न स सुभूते बोधिसत्त्वो वक्तव्यो यस्य सत्त्वसंज्ञा<br>प्रवर्तेत, जीवसंज्ञा वा पुद्गलसंज्ञा व प्रवर्तेत॥३॥<p><p>अपि तु खलु पुनः सुभुते न बोधिसत्त्वेन वस्तुप्रतिष्ठितेन दानं दातव्यम्,<br>न क्वचित्प्रतिष्ठितेन दानं दातव्यम्। न रूपप्रतिष्ठितेन दानं दातव्यम्।<br>न शब्दगन्धरसस्प्रष्टव्यधर्मेषु प्रतिष्ठितेन दानं दातव्यम्। एवं हि<br>सूभूते बोधिसत्त्वेन महासत्त्वेन दानं दातव्यं यथा न निमित्तसंज्ञायामपि<br>प्रतितिष्ठेत्। तत्कस्य हेतोः ? यः सुभूते बोधिसत्त्वोऽप्रतिष्ठितो दानं<br>ददाति, तस्य सुभूते पुण्यस्कन्धस्य न सुकरं प्रमाणामुद्ग्रहीतुम्। तत्किं<br>मन्यसे सुभूते सुकरं पूर्वस्यां दिशि आकाशस्य प्रमाणमुद्ग्रहीतुम् ?<br>सुभूतिराह-नो हीदं भगवन्। भगवानाह- एवं दक्षिणपश्चिमोत्तरासु अध ऊर्ध्वं<br>दिग्विदिक्षु समन्ताद्दशसु दिक्षु सुकरमाकाशस्य प्रमाणमुद्ग्रहीतुम् ?<br>सुभूतिराह-नो हीदं भगवन्। भगवानाह-एवमेव सुभूते यो<br>बोधिसत्त्वोऽप्रतिष्ठितो दानं ददाति, तस्य सुभूते पुण्यस्कन्धस्य न सुकरं<br>प्रमाणमुद्ग्रहीतुम्। एवं हि सुभूते बोधिसत्त्वयानसंप्रस्थितेन दानं<br>दातव्यं यथा न निमित्तसंज्ञायामपि प्रतितिष्ठेत्॥४॥<p><p>तत्किं मन्यसे सुभूते लक्षणसंपदा तथागतो द्रष्टव्यः ? सुभूतिराह-नो हीदं<br>भगवन्। न लक्षणसंपदा तथागतो द्रष्टव्यः। तत्कस्य हेतोः ? या सा भगवन्<br>लक्षणसंपत्तथागतेन भाषिता सैवालक्षणसंपत्। एवमुक्ते भगवानायुष्मन्तं<br>सुभूतिमेतदवोचत् यावत्सुभूते लक्षणसंपत् तावन्मृषा, यावदलक्षणसंपत्<br>तावन्न मृषेति हि लक्षणालक्षणतस्तथागतो द्रष्टव्यः॥५॥<p><p>एवमुक्ते आयुष्मान् सुभूतिर्भगवन्तमेतदवोचत्- अस्ति भगवन्। केचित्सत्त्वा<br>भविष्यन्त्यनागतेऽध्वनि पश्चिमे काले पश्चिमे समये पश्चिमायां पञ्चशत्यां<br>सद्धर्मविप्रलोपकाले वर्तमाने, ये इमेष्वेवंरूपेषु सूत्रान्तपदेषु<br>भाष्यमाणेषु भूतसंज्ञामुत्पादयिष्यन्ति। अपि तु खलु पुनः सुभूते<br>भविष्यन्त्यनागतेऽध्वनि बोधिसत्त्वा महासत्त्वाः पश्चिमे काले पश्चिमे<br>समये पश्चिमायां पञ्चशत्यां सद्धर्मविप्रलोपे वर्तमाने गुणवन्तः शीलवन्तः<br>प्रज्ञावन्तश्च भविष्यन्ति, ये इमेष्वेवंरूपेषु सूत्रान्तपदेषु<br>भाष्यमाणेषु भूतसंज्ञामुत्पादयिष्यन्ति। न खलु पुनस्ते सुभूते<br>बोधिसत्त्वा महासत्त्वा एकबुद्धपर्युपासिता भविष्यन्ति,<br>नैकबुद्धावरोपितकुशलमूला भविष्यन्ति। अपि तु खलु पुनः सुभूते<br>अनेकबुद्धशतसहस्रपर्युपासिता अनेकबुद्धशतसहस्रावरोपितकुशलमूलास्ते<br>बोधिसत्त्वा महासत्त्वा भविष्यन्ति, ये इमेष्वेवंरूपेषु सूत्रान्तपदेषु<br>भाष्यमाणेषु एकचित्तप्रसादमपि प्रतिलप्स्यन्ते। ज्ञातास्ते सुभूते<br>तथागतेन बुद्धज्ञानेन, दृष्टास्ते सुभूते तथागतेन बुद्धचक्षुषा,<br>बुद्धास्ते सुभूते तथागतेन। सर्वे ते सुभूते अप्रमेयमसंख्येयं<br>पुण्यस्कन्धं प्रसविष्यन्ति प्रतिग्रहीष्यन्ति। तत्कस्य हेतोः ? न हि<br>सुभूते तेषां बोधिसत्त्वानां महासत्त्वानामात्मसंज्ञा प्रवर्तते, न<br>सत्त्वसंज्ञा, न जीवसंज्ञा, न पुद्गलसंज्ञा प्रवर्तते। नापि तेषां सुभूते<br>बोधिसत्त्वानां महासत्त्वानां धर्मसंज्ञा प्रवर्तते। एवं नाधर्मसंज्ञा।<br>नापि तेषां सुभूते संज्ञा नासंज्ञा प्रवर्तते। तत्कस्य हेतोः ?<br>सचेत्सुभूते तेषां बोधिसत्त्वानां महासत्त्वानां धर्मसंज्ञा प्रवर्तेत, स<br>एव तेषामात्मग्राहो भवेत्, सत्त्वग्राहो जीवग्राहः पुद्गलग्राहो भवेत्।<br>सचेदधर्मसंज्ञा प्रवर्तेत, स एव तेषामात्मग्राहो भवेत्, सत्त्वग्राहो<br>जीवग्राहः पुद्गलग्राह इति। तत्कस्य हेतोः ? न खलु पुनः सुभूते<br>बोधिसत्त्वेन महासत्त्वेन धर्म उद्ग्रहीतव्यो नाधर्मः। तस्मादियं तथागतेन<br>संधाय वाग्भाषिता-कोलोपमं धर्मपर्यायमाजानद्भिधर्मा एव प्रहातव्याः<br>प्रागेवाधर्मा इति॥६॥<p><p>पुनरपरं भगवानायुष्मन्तं सुभूतिमेतदवोचत्- तत्किं मन्यसे सुभूते, अस्ति स<br>कश्चिद्धर्मो यस्तथागतेनानुत्तरा सम्यक्संबोधिरित्यभिसंबुद्धः, कश्चिद्वा<br>धर्मस्तथागतेन देशितः ? एवमुक्ते आयुष्मान्<br>सुभूतिर्भगवन्तमेतदवोचत्-यथाहं भगवन् भगवतो भाषितस्यार्थमाजानामि, नास्ति<br>स कश्चिद्धर्मो यस्तथागतेन अनुत्तरा सम्यक्संबोधिरित्यभिसंबुद्धः, नास्ति<br>धर्मो यस्तथागतेन देशितः। तत्कस्य हेतोः ? योऽसौ तथागतेन<br>धर्मोऽभिसंबुद्धो देशितो वा, अग्राह्यः सोऽनभिलप्यः। न स धर्मो नाधर्मः।<br>तत्कस्य हेतोः ? असंस्कृतप्रभाविता ह्यार्यपुद्गलाः॥७॥<p><p>भगवानाह- तत्किं मन्यसे सुभूते यः कश्चित्कुलपुत्रो वा कुलदुहिता वा इमं<br>त्रिसाहस्रमहासाहस्रं लोकधातुं सप्तरत्नपरिपूर्णं कृत्वा<br>तथागतेभ्योऽर्हद्भयः सम्यक्संबुद्धेभ्यो दानं दद्यात्, अपि नु स<br>कुलपुत्रो वा कुलदुहिता वा ततोनिदानं बहु पुण्यस्कन्धं प्रसुनुयात्।<br>सुभूतिराह-बहु भगवन्, बहु सुगत स कुलपुत्रो वा कुलदुहिता वा ततोनिदानं<br>पुण्यस्कन्धं प्रसुनुयात्। तत्कस्य हेतोः ? योऽसौ भगवन्<br>पुण्यस्कन्धस्तथागतेन भाषितः, अस्कन्धः स तथागतेन भाषितः। तस्मात्तथागतो<br>भाषते- पुण्यस्कन्धः पुण्यस्कन्ध इति। भगवानाह-यश्च खलु पुनः सुभूते<br>कुलपुत्रो वा कुलदुहिता व इमं त्रिसाहस्रमहासाहस्रं लोकधातुं<br>सप्तरत्नपरिपूर्णं कृत्वा तथागतेभ्योऽर्हद्भ्यः सम्यक्संबुद्धेभ्यो दानं<br>दद्यात्, यश्च इतो धर्मपर्यायादन्तशश्चतुष्पादिकामपि गाथामुद्गृह्य<br>परेभ्यो विस्तरेण देशयेत् संप्रकाशयेत्, अयमेव ततोनिदानं बहुतरं<br>पुण्यस्कन्धं प्रसुनुयादप्रमेयसंख्येयम्। तत्कस्य हेतोः ? अतोनिर्जाता हि<br>सुभूते तथागतानामर्हतां सम्यक्संबुद्धानामनुत्तरा सम्यक्संबोधिः,<br>अतोनिर्जाताश्च बुद्धा भगवन्तः। तत्कस्य हेतोः ? बुद्धधर्मा बुद्धधर्मा<br>इति सुभूते अबुद्धधर्माश्चैव ते तथागतेन भाषिताः। तेनोच्यन्ते बुद्धधर्मा<br>इति॥८॥<p><p>तत्किं मन्यसे सुभूते अपि नु स्रोतआपन्नस्यैवं भवति-मया स्रोतआपत्तिफलं<br>प्राप्तमिति? सुभूतिराह-नो हीदं भगवन्। न स्रोतआपन्नस्यैवं भवति-मया<br>स्रोतआपत्तिफलं प्राप्तमिति। तत्कस्य हेतोः ? न हि स भगवन्<br>कंचिद्धर्ममापन्नः, तेनोच्यते स्रोतआपन्न इति। न रूपमापन्नो न शब्दान् न<br>गन्धान् न रसान् न स्प्रष्टव्यान् धर्मानापन्नः। तेनोच्यते स्रोतआपन्न<br>इति। सचेद्भगवन् स्रोतआपन्नस्यैवं भवेत्- मया स्रोतआपत्तिफलं<br>प्राप्तमिति, स एव तस्यात्मग्राहो भवेत्, सत्त्वग्राहो जीवग्राहः<br>पुद्गलग्राहो भवेदिति॥<p><p>भगवानाह- तकिं मन्यसे सुभूते अपि नु सकृदागामिन एवं भवति-मया<br>सकृदागामिफलं प्राप्तमिति ? सुभूतिराह-नो हीदं भगवन्। स सकृदागामिन एवं<br>भवति-मया सकृदागामिफलं प्राप्तमिति। तत्कस्य हेतोः ? न हि स कश्चिद्धर्मो<br>यः सकृदागामित्वमापन्नः। तेनोच्यते सकृदागामीति॥<p><p>भगवानाह-तत्किं मन्यसे सुभूते अपि नु अनागामिन एवं भवति-मयानागामिफलं<br>प्राप्तमिति ? सुभूतिराह-नो हीदं भगवन्। न अनागामिन एवं भवति-मया<br>अनागामिफलं प्राप्तमिति। तत्कस्य हेतोः ? न हि स भगवन् कश्चिद्धर्मो<br>योऽनागामित्वमापन्नः। तेनोच्यते अनागामीति॥<p><p>भगवानाह- तत्किं मन्यसे सुभूते अपि नु अर्हत एवं भवति-मया अर्हत्त्वं<br>प्राप्तमिति ? सुभूतिराह-नो हीदं भगवन्। नार्हत एवं भवति-मया अर्हत्त्वं<br>प्राप्तमिति। तत्कस्य हेतोः ? न हि स भगवन् कश्चिद्धर्मो योऽर्हन्नाम।<br>तेनोच्यते-अर्हन्निति। सचेद्भगवन् अर्हत एवं भवेत्-मया अर्हत्त्वं<br>प्राप्तमिति, स एव तस्यात्मग्राहो भवेत्, सत्त्वग्राहो जीवग्राहः<br>पुद्गलग्राहो भवेत्। तत्कस्य हेतोः ? अहमस्मि भगवंस्तथागतेनार्हता<br>सम्यक्संबुद्धेन अरणाविहारिणामग्र्यो निर्दिष्टः। अहमस्मि भगवन् अर्हन्<br>वीतरागः। न च मे भगवन्नेवं भवति- अर्हन्नस्म्यहं वीतराग इति। सचेन्मम<br>भगवन्नेवं भवेत्-मया अर्हत्त्वं प्राप्तमिति, न मां तथागतो<br>व्याकरिष्यदरणाविहारिणामग्र्यः सुभूतिः कुलपुत्रो न क्वचिद्विहरति,<br>तेनोच्यते अरणाविहारी अरणाविहारीति॥९॥<p><p>भगवानाह-तत्किं मन्यसे सुभूते-अस्ति स कश्चिद्धर्मो यस्तथागतेन दीपंकरस्य<br>तथागतस्यार्हत-सम्यक्संबुद्धस्यान्तिकादुद्गृहीतः? सुभूतिराह- नो हीदं<br>भगवन्। नास्ति स कश्चिद्धर्मो यस्तथागतेन दीपंकरस्य तथागतस्यार्हतः<br>सम्यक्संबुद्धस्यान्तिकादुद्गृहीतः॥<p><p>भगवानाह-यः कश्चित्सुभूते बोधिसत्त्व एवं वदेत्-अहं क्षेत्रव्यूहान्<br>निष्पादयिष्यामीति, स वितथं वदेत्। तत्कस्य हेतोः ? क्षेत्रव्यूहाः<br>क्षेत्रव्यूहा इति सुभूते अव्यूहास्ते तथागतेन भाषिताः। तेनोच्यन्ते<br>क्षेत्रव्यूहा इति। तस्मात्तर्हि सुभूते बोधिसत्त्वेन महासत्त्वेन<br>एवमप्रतिष्ठितं चित्तमुत्पादयितव्यं यन्न क्वचित्प्रतिष्ठितं<br>चित्तमुत्पादयितव्यम्। न रूपप्रतिष्ठितं चित्तमुत्पादयितव्यं न<br>शब्दगन्धरसस्प्रष्टव्यधर्मप्रतिष्ठितं चित्तमुत्पादयितव्यम्। तद्यथापि<br>नाम सुभूते पुरुषो भवेदुपेतकायो महाकायो यत्तस्यैवं रूप आत्मभावः स्यात्<br>तद्यथापि नाम सुमेरुः पर्वतराजः। तत्किं मन्यसे सुभूते अपि नु महान् स<br>आत्मभावो भवेत् ? सुभूतिराह-महान् स भगवान्, महान् सुगत स आत्मभावो<br>भवेत्। तत्कस्य हेतोः ? आत्मभाव आत्मभाव इति भगवन् न भावः स तथागतेन<br>भाषितः। तेनोच्यत आत्मभाव इति। न हि भगवन् स भावो नाभावः। तेनोच्यते<br>आत्मभाव इति॥१०॥<p><p>भगवानाह- तत्किं मन्यसे सुभूते-यावत्यो गङ्गायां महानद्यां<br>वालुकास्तावत्य एव गङ्गानद्यो भवेयुः ? तासु या वालुकाः, अपि नु ता<br>बह्वयो भवेयुः ? सुभूतिराह-ता एव तावद्भगवन् बह्वयो गङ्गानद्यो भवेयुः,<br>प्रागेव यास्तासु गङ्गानदीषु वालुकाः। भगवानाह- आरोचयामि ते सुभूते,<br>प्रतिवेदयामि ते। यावत्यस्तासु गङ्गानदीषु वालुका भवेयुस्तावतो लोकधातून्<br>कश्चिदेव स्त्री वा पुरुषो वा सप्तरत्नपरिपुर्णं कृत्वा<br>तथागतेभ्योऽर्हद्भयः सम्यक्संबुद्धेभ्यो दानं दद्यात्, तत् किं मन्यसे<br>सुभूते-अपि नु सा स्त्री वा पुरुषो वा ततोनिदानं बहु पुण्यस्कन्धं<br>प्रसुनुयात् ? सुभूतिराह-बहु भगवन्, बहु सुगत स्त्री वा पुरुषो वा<br>ततोनिदानं पुण्यस्कन्धं प्रसुनुयादप्रमेयमसंख्येयम्। भगवानाह- यश्च खलु<br>पुनः सुभूते स्त्री वा पुरुषो वा तावतो लोकधातून् सप्तरत्नपरिपूर्णं<br>कृत्वा तथागतेभ्योऽर्हद्भयः सम्यक्संबुद्धेभ्यो दानं दद्यात्, यश्च<br>कुलपुत्रो वा कुलदुहिता वा इतो धर्मपर्यायादन्तशश्चतुष्पादिकामपि<br>गाथामुद्गृह्य परेभ्यो देशयेत् संप्रकाशयेत्, अयमेव ततोनिदानं बहुतरं<br>पुण्यस्कन्धं प्रसुनुयादप्रमेयमसंख्येयम्॥११॥<p><p>अपि तु खलु पुनः सुभुते यस्मिन् पृथिवीप्रदेशे इतो<br>धर्मपर्यायादन्तशश्चतुष्पादिकामपि गाथामुद्गृह्य भाष्येत वा संप्रकाश्येत<br>वा, स पृथिवीप्रदेशश्चैत्यभूतो भवेत् सदेवमानुषासुरस्य लोकस्य, कः<br>पुनर्वादो ये इमं धर्मपर्यायं सकलसमाप्तं धारयिष्यन्ति वाचयिष्यन्ति<br>पर्यवाप्स्यन्ति, परेभ्यश्च विस्तरेण संप्रकाशयिष्यन्ति। परमेण ते सुभूते<br>आश्चर्येण समन्वागता भविष्यन्ति। तस्मिंश्च सुभूते पृथिवीप्रदेशे शास्ता<br>विहरत्यन्यतरान्यतरो वा विज्ञगुरुस्थानीयः॥१२॥<p><p>एवमुक्ते आयुष्मान् सुभूतिर्भगवन्तमेतदवोचत्-को नाम अयं भगवन्<br>धर्मपर्यायः, कथं चैनं धारयामि ? एवमुक्ते भगवानायुष्मन्तं<br>सुभूतिमेतदवोचत्- प्रज्ञापारमिता नामायं सुभूते धर्मपर्यायः। एवं चैनं<br>धारय। तत्कस्य हेतोः ? यैव सुभूते प्रज्ञापारमिता तथागतेन भाषिता, सैव<br>अपारमिता तथागतेन भाषिता। तेनोच्यते प्रज्ञापारमितेति॥<p><p>तत्किं मन्यसे सुभूते-अपि नु अस्ति स कश्चिद्धर्मो यस्तथागतेन भाषितः ?<br>सुभूतिराह-नो हीदं भगवन्। नास्ति स कश्चिद्धर्मो यस्तथागतेन भाषितः॥<p><p>भगवानाह-तत्किं मन्यसे सुभूते-यावत् त्रिसाहस्रमहासाहस्रे लोकधातौ<br>पृथिवीरजः कच्चित्, तद्बहु भवेत् ? सुभूतिराह-बहु भगवन्, बहु सुगत<br>पृथिवीरजो भवेत्। तत्कस्य हेतोः ? यत्तद्भगवन् पृथिवीरजस्तथागतेन<br>भाषितम्, अरजस्तद्भगवंस्तथागतेन भाषितम्। तेनोच्यते पृथिवीरज इति।<br>योऽप्यसौ लोकधातुस्तथागतेन भाषितः, अधातुः स तथागतेन भाषितः। तेनोच्यते<br>लोकधातुरिति॥<p><p>भगवानाह- तत्किं मन्यसे सुभूते द्वात्रिंशन्महापुरुषलक्षणैस्तथागतोऽर्हन्<br>सम्यक्संबुद्धो द्रष्टव्यः ? सुभूतिराह-नो हीदं भगवन्।<br>द्वात्रिंशन्महापुरुषलक्षणैस्तथागतोऽर्हन् सम्यक्संबुद्धो द्रष्टव्यः।<br>तत्कस्य हेतोः ? यानि हि तानि भगवन् द्वात्रिंशन्महापुरुषलक्षणानि<br>तथागतेन भाषितानि, अलक्षणानि तानि भगवंस्तथागतेन भाषितानि। तेनोच्यन्ते<br>द्वात्रिंशन्महापुरुषलक्षणानीति॥<p><p>भगवानाह-यश्च खलु पुनः सुभूते स्त्री वा पुरुषो वा दिने दिने<br>गङ्गानदीवालुकासमानात्मभावान् परित्यजेत्, एवं परित्यजन्<br>गङ्गानदीवालुकासमान् कल्पांस्तानात्मभावान् परित्यजेत्, यश्च इतो<br>धर्मपर्यायदन्तशश्चतुष्पादिकामपि गाथामुद्गृह्यपरेभ्यो देशयेत्<br>संप्रकाशयेत्, अयमेव ततोनिदानं बहुतरं पुण्यस्कन्धं<br>प्रसुनुयादप्रमेयमसंख्येयम्॥१३॥<p><p>अथ खल्वायुष्मान् सुभूतिर्धर्मवेगेनाश्रूणि प्रामुञ्चत्। सोऽश्रूणि<br>प्रमृज्य भगवन्तमेतदवोचत्-आश्चर्यं भगवन्, परमाश्चर्यं सुगत, यावदयं<br>धर्मपर्यायस्तथागतेन भाषितोऽग्रयानसंप्रस्थितानां सत्त्वानामर्थाय,<br>श्रेष्ठयानसंप्रस्थितानामर्थाय, यतो मे भगवन् ज्ञानमुत्पन्नम्। न मया<br>भगवन् जात्वेवंरूपो धर्मपर्यायः श्रुतपूर्वः। परमेण ते भगवन् आश्चर्येण<br>समन्वागता बोधिसत्त्वा भविष्यन्ति, ये इह सूत्रे भाष्यमाणे श्रुत्वा<br>भूतसंज्ञामुत्पादयिष्यन्ति। तत्कस्य हेतोः ? या चैषा भगवन् भूतसंज्ञा,<br>सैव अभूतसंज्ञा। तस्मात्तथागतो भाषतेभूतसंज्ञा भूतसंज्ञेति॥<p><p>न मम भगवन् आश्चर्यं यदहमिमं धर्मपर्यायं भाष्यमाणमवकल्पयामि अधिमुच्ये।<br>येऽपि ते भगवन् सत्त्वा भविष्यन्त्यनागतेऽध्वनि पश्चिमे काले पश्चिमे<br>समये पश्चिमायां पञ्चशत्यां सद्धर्मविप्रलोपे वर्तमाने, ये इमं भगवन्<br>धर्मपर्यायमुद्ग्रहीष्यन्ति धारयिष्यन्ति वाचयिष्यन्ति पर्यवाप्स्यन्ति,<br>परेभ्यश्च विस्तरेण संप्रकाशयिष्यन्ति, ते परमाश्चर्येण समन्वागता<br>भविष्यन्ति। अपि तु खलु पुनर्भगवन् न तेषामात्मसंज्ञा प्रवर्तिष्यते, न<br>सत्त्वसंज्ञा न जीवसंज्ञा न पुद्गलसंज्ञा प्रवर्तिष्यते, नापि तेषां<br>काचित्संज्ञा नासंज्ञा प्रवर्तते। तत्कस्य हेतोः ? या सा भगवन्<br>आत्मसंज्ञा, सैवासंज्ञा। या सत्त्वसंज्ञा जीवसंज्ञा पुद्गलसंज्ञा,<br>सैवासंज्ञा। तत्कस्य हेतोः ? सर्वसंज्ञापगता हि बुद्ध भगवन्तः॥<p><p>एवमुक्ते भगवानायुष्मन्तं सुभूतिमेतदवोचत्-एवमेतत् सुभूते, एवमेतत्।<br>परमाश्चर्यसमन्वागतास्ते सत्त्वा भविष्यन्ति, ये इह सुभूते सूत्रे<br>भाष्यमाणे नोत्रसिष्यन्ति न संत्रसिष्यन्ति न संत्रासमापत्स्यन्ते।<br>तत्कस्य हेतोः ? परमपारमितेयं सुभूते तथागतेन भाषिता यदुतापारमिता। यां च<br>सुभूते तथागतः परमपारमितां भाषते, तामपरिमाणा अपि बुद्धा भगवन्तो<br>भाषन्ते। तेनोच्यन्ते परमपारमितेति॥<p><p>अपि तु खलु पुनः सुभुते या तथागतस्य क्षान्तिपारमिता, सैव अपारमिता।<br>तत्कस्य हेतोः ? यदा मे सुभूते कलिराजा अङ्गप्रत्यङ्गमांसान्यच्छैत्सीत्,<br>नासीन्मे तस्मिन् समये आत्मसंज्ञा वा सत्त्वसंज्ञा वा जीवसंज्ञा वा<br>पुद्गलसंज्ञा वा, नापि मे काचित्संज्ञा वा असंज्ञा वा बभूव। तत्कस्य<br>हेतोः ? सचेन्मे सुभूते तस्मिन् समये आत्मसंज्ञा अभविष्यत्,<br>व्यापादसंज्ञापि मे तस्मिन् समयेऽभविष्यत्। सचेत्सत्त्वसंज्ञा जीवसंज्ञा<br>पुद्गलसंज्ञाभविष्यत्, व्यापादसंज्ञापि मे तस्मिन् समयेऽभविष्यत्।<br>तत्कस्य हेतोः ? अभिजानाम्यहं सुभूते अतीतेऽध्वनि पञ्च जातिशतानि यदहं<br>क्षान्तिवादी ऋषिरभूवम्। तत्रापि मे नात्मसंज्ञा बभूव, न सत्त्वसंज्ञा, न<br>जीवसंज्ञा, न पुद्गलसंज्ञा बभूव। तस्मात्तर्हि सुभूते बोधिसत्त्वेन<br>महासत्त्वेन सर्वसंज्ञा विवर्जयित्वा अनुत्तरायां सम्यक्संबोधौ<br>चित्तमुत्पादयितव्यम्। न रूपप्रतिष्ठितं चित्तमुत्पादयितव्यम्, न<br>शब्दगन्धरसस्प्रष्टव्यधर्मप्रतिष्ठितं चित्तमुत्पादयितव्यम्, न<br>धर्मप्रतिष्ठितं चित्तमुत्पादयितव्यम्, नाधर्मप्रतिष्ठितं<br>चित्तमुत्पादयितव्यम्, न क्वचित्प्रतिष्ठितं चित्तमुत्पादयितव्यम्।<br>तत्कस्य हेतोः ? यत्प्रतिष्ठितं तदेवाप्रतिष्ठितम्। तस्मादेव तथागतो<br>भाषते-अप्रतिष्ठितेन बोधिसत्त्वेन दानं दातव्यम्। न<br>रूपशब्दगन्धरसस्पर्शधर्मप्रतिष्ठितेन दानं दातव्यम्॥<p><p>अपि तु खलु पुनः सुभूते बोधिसत्त्वेन एवंरूपो दानपरित्यागः कर्तव्यः<br>सर्वसत्त्वानामर्थाय। तत्कस्य हेतोः ? या चैषा सुभूते सत्त्वसंज्ञा, सैव<br>असंज्ञा। य एवं ते सर्वसत्त्वास्तथागतेन भाषितास्त एव असत्त्वाः। तत्कस्य<br>हेतोः ? भूतवादी सुभूते तथागतः, सत्यवादी तथावादी अनन्यथावादी तथागतः, न<br>वितथवादी तथागतः॥<p><p>अपि तु खलु पुनः सुभूते यस्तथागतेन धर्मोऽभिसंबुद्धो देशितो निध्यातः, न<br>तत्र सत्यं न मृषा। तद्यथापि नाम सुभूते पुरुषोऽन्धकारप्रविष्टो न<br>किंचिदपि पश्येत्, एवं वस्तुपतितो बोधिसत्त्वो द्रष्टव्यो यो वस्तुपतितो<br>दानं परित्यजति। तद्यथापि नाम सुभूते चक्षुष्मान् पुरुषः प्रभातायां<br>रात्रौ सूर्येऽभ्युद्गते नानविधानि रूपाणि पश्येत्, एवमवस्तुपतितो<br>बोधिसत्त्वो द्रष्टव्यो योऽवस्तुपतितो दानं परित्यजति॥<p><p>अपि तु खलु पुनः सुभूते ये कुलपुत्रा वा कुलदुहितरो वा इमं<br>धर्मपर्यायमुद्ग्रहीष्यन्ति धारयिष्यन्ति वाचयिष्यन्ति पर्यवाप्स्यन्ति,<br>परेभ्यश्च विस्तरेण संप्रकाशयिष्यन्ति, ज्ञातास्ते सुभूते तथागतेन<br>बुद्धज्ञानेन, दृष्टास्ते सुभूते तथागतेन बुद्धचक्षुषा, बुद्धास्ते<br>तथागतेन। सर्वे ते सुभूते सत्त्वा अप्रमेयमसंख्येयं पुण्यस्कन्धं<br>प्रसविष्यन्ति प्रतिग्रहीष्यन्ति॥१४॥<p><p>यश्च खलु पुनः सुभूते स्त्री वा पुरुषो वा पुर्वाह्णकालसमये<br>गङ्गानदीवालुकासमानात्मभावान् परित्यजेत्, एवं मध्याह्नकालसमये<br>गङ्गानदीवालुकासमानात्मभावान् परित्यजेत्, सायाह्नकालसमये<br>गङ्गानदीवालुकासमानात्मभावान् परित्यजेत्, अनेन पर्यायेण बहूनि<br>कल्पकोटिनियुतशतसहस्राण्यात्मभावान् परित्यजेत्, यश्चेमं धर्मपर्यायं<br>श्रुत्वा न प्रतिक्षिपेत्, अयमेव ततोनिदानं बहुतरं पुण्यस्कन्धं<br>प्रसुनुयादप्रमेयमसंख्येयम्, कः पुनर्वादो यो लिखित्वा<br>उद्गृह्णीयाद्धारयेद्वाचयेत्पर्यवाप्नुयात्, परेभ्यश्च विस्तरेण<br>संप्रकाशयेत्॥<p><p>अपि तु खलु पुनः सुभूते अचिन्त्योऽतुल्योऽयं धर्मपर्यायः। अयं च सुभूते<br>धर्मपर्यायस्तथागतेन भाषितोऽग्रयानसंप्रस्थितानां सत्त्वानामर्थाय,<br>श्रेष्ठयानसंप्रस्थितानां सत्त्वानामर्थाय। ये इमं<br>धर्मपर्यायमुद्ग्रहीष्यन्ति धारयिष्यन्ति वाचयिष्यन्ति पर्यवाप्स्यन्ति,<br>परेभ्यश्च विस्तरेण संप्रकाशयिष्यन्ति, ज्ञातास्ते सुभूते तथागतेन<br>बुद्धज्ञानेन, दृष्टास्ते सुभूते तथागतेन बुद्धचक्षुषा, बुद्धास्ते<br>तथागतेन। सर्वे ते सुभूते सत्त्वा अप्रमेयेण पुण्यस्कन्धेनां समन्वागता<br>भविष्यन्ति। अचिन्त्येनातुल्येनामाप्येनापरिमाणेन पुण्यस्कन्धेन<br>समन्वागता भविष्यन्ति। सर्वे ते सुभूते सत्त्वाः समांशेन बोधिं<br>धारयिष्यन्ति वचयिष्यन्ति पर्यवाप्स्यन्ति। तत्कस्य हेतोः ? न हि शक्यं<br>सुभूते अयं धर्मपर्यायो हीनाधिमुक्तिकैः सत्त्वैः श्रोतुम्,<br>नात्मदृष्टिकैर्न सत्त्वदृष्टिकैर्न जीवदृष्टिकैर्न पुद्गलदृष्टिकैः।<br>नाबोधिसत्त्वप्रतिज्ञै सत्त्वैः शक्यमयं धर्मपर्यायः श्रोतुं वा<br>उद्ग्रहीतुं वा धारयितुं वा वाचयितुं वा पर्यवाप्तुं वा। नेदं स्थानं<br>विद्यते॥<p><p>अपि तु खलु पुनः सुभूते यत्र पृथिवीप्रदेशे इदं सूत्रं प्रकशयिष्यते,<br>पूजनीयः स पृथिवीप्रदेशो भविष्यति सदेवमानुषासुरस्य लोकस्य। वन्दनीयः<br>प्रदक्षिणीयश्च स पृथिवीप्रदेशो भविष्यति, चैत्यभूतः स पृथिवीप्रदेशो<br>भविष्यति॥१५॥<p><p>अपि तु ये ते सुभूते कुलपुत्रा वा कुलदुहितरो वा इमानेवंरूपान्<br>सूत्रान्तानुद्ग्रहीष्यन्ति धारयिष्यन्ति वाचयिष्यन्ति पर्यवाप्स्यन्ति,<br>योनिशश्च मनसिकरिष्यन्ति, परेभ्यश्च विस्तरेण संप्रकाशयिष्यन्ति, ते<br>परिभूता भविष्यन्ति, सुपरिभूताश्च भविष्यन्ति। तत्कस्य हेतोः ? यानि च<br>तेषां सुभूते सत्त्वानां पौर्वजन्मिकान्यशुभानि कर्माणि<br>कृतान्यपायसंवर्तनीयानि, दृष्ट एव धर्मे परिभूततया तानि<br>पौर्वजन्मिकान्यशुभानि कर्माणि क्षपयिष्यन्ति, बुद्धबोधिं<br>चानुप्राप्स्यन्ति॥<p><p>अभिजानाम्यहं सुभूते अतीतेऽध्वन्यसंख्येयैः कल्पैरसंख्येयतरैर्दीपंकरस्य<br>तथागतस्यार्हतः सम्यक्संबुद्धस्य परेण परतरेण<br>चतुरशीतिबुद्धकोटिनियुतशतसहस्राण्यभूवन् ये मयारागिताः, आराग्य न<br>विरागिताः। यच्च मया सुभूते ते बुद्धा भगवन्त आरागिताः, आराग्य न<br>विरागिताः, यच्च पश्चिमे काले पश्चिमे समये पश्चिमायां पञ्चशत्यां<br>सद्धर्मविप्रलोपकाले वर्तमाने इमानेवंरूपान् सूत्रान्तानुद्ग्रहीष्यन्ति<br>धारयिष्यन्ति वाचयिष्यन्ति पर्यवाप्स्यन्ति, परेभ्यश्च विस्तरेण<br>संप्रकाशयिष्यन्ति, अस्य खलु पुनः सुभूते पुण्यस्कन्धस्यान्तिकादसौ<br>पौर्वकः पुण्यस्कन्धः शततमीमपि कलां नोपैति, सहस्रतमीमपि शतसहस्रतमीमपि<br>कोटिममिपि कोटिशततमीमपि कोटिशतसहस्रतमीमपि कोटिनियुतशतसहस्रतमीमपि।<br>संख्यामपि कलामपि गणनामपि उपमामपि उपनिषदमपि यावदौपम्यमपि न क्षमते॥<p><p>सचेत्पुनः सुभूते तेषां कुलपुत्राणां कुलदुहितॄणां वा अहं पुण्यस्कन्धं<br>भाषेयम्, यावत्ते कुलपुत्रा वा कुलदुहितरो वा तस्मिन् समये पुण्यस्कन्धं<br>प्रसविष्यन्ति, प्रतिग्रहीष्यन्ति, उन्मादं सत्त्वा<br>अनुप्राप्नुयुश्चित्तविक्षेपं वा गच्छेयुः। अपि तु खलु पुनः सुभूते<br>अचिन्त्योऽतुल्योऽयं धर्मपर्यायस्तथागतेन भाषितः। अस्य अचिन्त्य एव<br>विपाकः प्रतिकाङ्क्षितव्यः॥१६॥<p><p>अथ खल्वायुष्मान् सुभूतिर्भगवन्तमेतदवोचत्-कथं भगवन्<br>बोधिसत्त्वयानसंप्रस्थितेन स्थातव्यम्, कथं प्रतिपत्तव्यम्, कथं चित्तं<br>प्रग्रहीतव्यम् ? भगवानाह-इह सुभूते बोधिसत्त्वयानसंप्रस्थितेन एवं<br>चित्तमुत्पादयितव्यम्-सर्वे सत्त्वा मया अनुपधिशेषे निर्वाणधातौ<br>परिनिर्वापयितव्याः। एवं स सत्त्वान् परिनिर्वाप्य न कश्चित्सत्त्वः<br>परिनिर्वापितो भवति। तत्कस्य हेतोः ? सचेत्सुभूते बोधिसत्त्वस्य<br>सत्त्वसंज्ञा प्रवर्तेत, न स बोधिसत्त्व इति वक्तव्यः। जीवसंज्ञा वा<br>यावत्पुद्गलसंज्ञा वा प्रवर्तेत, न स बोधिसत्त्व इति वक्तव्यः। तत्कस्य<br>हेतोः ? नास्ति सुभूते स कश्चिद्धर्मो यो बोधिसत्त्वयानसंप्रस्थितो नाम॥<p><p>तत्किं मन्यसे सुभूते अस्ति स कश्चिद्धर्मो यस्तथागतेन दीपंकरस्य<br>तथागतस्यान्तिकादनुत्तरां सम्यक्संबोधिमभिसंबुद्धः ? एवमुक्ते आयुष्मान्<br>सुभूतिर्भगवन्तमेतदवोचत्- यथाहं भगवतो भाषितस्यार्थमाजानामि, नास्ति स<br>भगवन् कश्चिद्धर्मो यस्तथागतेन दीपंकरस्य तथागतस्यार्हतः<br>सम्यक्संबुद्धस्यान्तिकादनुत्तरां सम्यक्संबोधिमभिसंबुद्धः। एवमुक्ते<br>भगवानायुष्मन्तं सुभूतिमेतदवोचत्-एवमेतत्सुभूते, एवमेतत्। नास्ति सुभूते<br>स कश्चिद्धर्मो यस्तथागतेन दीपंकरस्य तथागतस्यार्हतः<br>सम्यक्संबुद्धस्यान्तिकादनुत्तरां सम्यक्संबोधिमभिसंबुद्धः। सचेत्पुनः<br>सुभूते कश्चिद्धर्मस्तथागतेनाभिसंबुद्धोऽभविष्यत्, न मां दीपंकरस्तथागतो<br>व्याकरिष्यत्-भविष्यसि त्वं माणव अनागतेऽध्वनि शाक्यमुनिर्नाम<br>तथागतोऽर्हन् सम्यक्संबुद्ध इति। यस्मात्तर्हि सुभूते तथागतेनार्हता<br>सम्यक्संबुद्धेन नास्ति स कश्चिद्धर्मो योऽनुत्तरां<br>सम्यक्संबोधिमभिसंबुद्धः, तस्मादहं दीपंकरेण तथागतेन व्याकृत- भविष्यसि<br>त्वं माणव अनागतेऽध्वनि शाक्यमुनिर्नाम तथागतोऽर्हन् सम्यक्संबुद्ध।<br>तत्कस्य हेतोः ? तथागत इति सुभूते भूततथताया एतदधिवचनम्। तथागत इति<br>सुभूते अनुत्पादधर्मताया एतदधिवचनम्। तथागत इति सुभूते<br>धर्मोच्छेदस्यैतदधिवचनम्। तथागत इति सुभूते<br>अत्यन्तानुत्पन्नस्यैतदधिवचनम्। तत्कस्य हेतोः ? एष सुभूते अनुत्पादो यः<br>परमार्थः। यः कश्चित्सुभूते एवं वदेत्-तथागतेनार्हता सम्यक्संबुद्धेन<br>अनुत्तरा सम्यक्संबोधिरभिसंबुद्धेति, स वितथं वदेत्। अभ्याचक्षीत मां स<br>सुभूते असतोद्गृहीतेन। तत्कस्य हेतोः- ? नास्ति सुभूते स कश्चिद्धर्मो<br>यस्तथागतेन अनुत्तरां सम्यक्संबोधिमभिसंबुद्धः। यश्च सुभूते तथागतेन<br>धर्मोऽभिसंबुद्धो देशितो वा तत्र न सत्यं न मृषा। तस्मात्तथागतो<br>भाषते-सर्वधर्मा बुद्धधर्मा इति। तत्कस्य हेतोः ? सर्वधर्मा इति सुभूते<br>अधर्मास्तथागतेन भाषिताः। तस्मादुच्यन्ते सर्वधर्मा बुद्धधर्मा इति॥<p><p>तद्यथापि नाम सुभूते पुरुषो भवेदुपेतकायो महाकायः ? आयुष्मान् सुभूतिराह-<br>योऽसौ भगवंस्तथागतेन पुरुषो भाषित उपेतकायो महाकाय इति, अकायः स<br>भगवंस्तथागतेन भाषितः। तेनोच्यते उपेतकायो महाकाय इति॥<p><p>भगवानाह -एवमेतत्सुभूते। यो बोधिसत्त्व एवं वदेत्-अहं सत्त्वान्<br>परिनिर्वापयिष्यामिति, न स बोधिसत्त्व इति वक्तव्यः। तत्कस्य हेतोः ?<br>अस्ति सुभूते स कश्चिद्धर्मो यो बोधिसत्त्वो नाम ? सुभूतिराह-नो हीदं<br>भगवन्। नास्ति स कश्चिद्धर्मो यो बोधिसत्त्वो नाम। भगवानाह- सत्त्वाः<br>सत्त्वा इति सुभूते असत्त्वास्ते तथागतेन भाषिताः, तेनोच्यन्ते सत्त्वा<br>इति। तस्मात्तथागतो भाषते-निरात्मानः सर्वधर्मा निर्जीवा निष्पोषा<br>निष्पुद्गलाः सर्वधर्मा इति॥<p><p>यः सुभूते बोधिसत्त्व एवं वदेत्- अहं क्षेत्रव्यूहान्निष्पादयिष्यामीति,<br>स वितथं वदेत्। तत्कस्य हेतोः ? क्षेत्रव्यूहाः क्षेत्रव्यूहा इति सुभूते<br>अव्यूहास्ते तथागतेन भाषिताः। तेनोच्यन्ते क्षेत्रव्यूहा इति॥<p><p>यः सुभूते बोधिसत्त्वो निरात्मानो धर्मा निरात्मानो धर्मा इत्यधिमुच्यते,<br>तथागतेनार्हता सम्यक्संबुद्धेन बोधिसत्त्वो महासत्त्व इत्याख्यातः॥१७॥<p><p>भगवानाह-तत्किं मन्यसे सुभूते-संविद्यते तथागतस्य मांसचक्षुः ?<br>सुभूतिराह- एवमेतद्भगवन्, संविद्यते तथागतस्य मांसचक्षुः। भगवानाह-तत्किं<br>मन्यसे सुभूते संविद्यते तथागतस्य दिव्यं चक्षुः ?<br>सुभूतिराह-एवमेतद्भगवन्, संविद्यते तथागतस्य दिव्यं चक्षुः।<br>भगवानाह-तत्किं मन्यसे सुभूते संविद्यते तथागतस्य प्रज्ञाचक्षुः ?<br>सुभूतिराह-एवमेतद्भगवन्, संविद्यते तथागतस्य प्रज्ञाचक्षुः।<br>भगवानाह-तत्किं मन्यसे सुभूते संविद्यते तथागतस्य धर्मचक्षुः ?<br>सुभूतिराह-एवमेतद्भगवन्, संविद्यते तथागतस्य धर्मचक्षुः। भगवानाह- तत्किं<br>मन्यसे सुभूते संविद्यते तथागतस्य बुद्धचक्षुः ? सुभूतिराह-एवमेतद्भगवन्,<br>संविद्यते तथागत बुद्धचक्षुः।<p><p>भगवानाह-तत्किं मन्यसे सुभूते यावन्त्यो गङ्गायां महानद्यां वालुकाः, अपि<br>नु ता वालुकास्तथागतेन भाषिताः ? सुभूतिराह-एवमेतद्भगवन्, एवमेतत् सुगत।<br>भाषितास्तथागतेन वालुकाः। भगवानाह-तत्किं मन्यसे सुभूते यावत्यो गङ्गायां<br>महानद्यां वालुकाः, तावत्य एव गङ्गानद्यो भवेयुः, तासु वा वालुकाः,<br>तावन्तश्च लोकधातवो भवेयुः, कच्चिद्बहवस्ते लोकधातवो भवेयुः ?<br>सुभूतिराह-एवमेतद्भगवन्, एवमेतत् सुगत। बहवस्ते लोकधातवो भवेयुः।<br>भगवानाह-यावन्तः सुभूते तेषु लोकधातुषु सत्त्वाः, तेषामहं नानाभावां<br>चित्तधारां प्रजानामि। तत्कस्य हेतोः ? चित्तधारा चित्तधारेति सुभूते<br>अधारैषा तथागतेन भाषिता, तेनोच्यते चित्तधारेति। तत्कस्य हेतोः ? अतीतं<br>सुभूते चित्तं नोपलभ्यते। अनागतं चित्तं नोपलभ्यते। प्रत्युत्पन्नं<br>चित्तं नोपलभ्यते॥१८॥<p><p>तत्किं मन्यसे सुभूते यः कश्चित्कुलपुत्रो वा कुलदुहिता वा इमं<br>त्रिसाहस्रमहासाहस्रं लोकधातुं सप्तरत्नपरिपूर्णं कृत्वा<br>तथागतेभ्योऽर्हद्भयः सम्यक्संबुद्धेभ्यो दानं दद्यात्, अपि नु स<br>कुलपुत्रो वा कुलदुहिता वा ततोनिदानं बहु पुण्यस्कन्धं प्रसुनुयात् ?<br>सुभूतिराह- बहु भगवन्, बहु सुगत। भगवानाह-एवमेतत्सुभूते, एवमेतत्। बहु स<br>कुलपुत्रो वा कुलदुहिता वा ततोनिदानं पुण्यस्कन्धं<br>प्रसुनुयादप्रमेयमसंख्येयम्। तत्कस्य हेतोः ? पुण्यस्कन्धः पुण्यस्कन्ध<br>इति सुभूते अस्कन्धः स तथागतेन भाषितः। तेनोच्यते पुण्यस्कन्ध इति। सचेत्<br>पुनः सुभूते पुण्यस्कन्धोऽभविष्यत्, न तथागतोऽभाषिष्यत् पुण्यस्कन्धः<br>पुण्यस्कन्ध इति॥१९॥<p><p>तत्किं मन्यसे सुभूते रूपकायपरिनिष्पत्त्या तथागतो द्रष्टव्यः ?<br>सुभूतिराह-नो हीदं भगवन्। न रूपकायपरिनिष्पत्त्या तथागतो द्रष्टव्यः।<br>तत्कस्य हेतोः ? रूपकायपरिनिष्पत्ती रूपकायपरिनिष्पत्तिरिति भगवन्<br>अपरिनिष्पत्तिरेषा तथागतेन भाषिता। तेनोच्यते रूपकायपरिनिष्पत्तिरिति॥<p><p>भगवानाह- तत्किं मन्यसे सुभूते लक्षणसंपदा तथागतो द्रष्टव्यः ?<br>सुभूतिराह-नो हीदं भगवान्। न लक्षणसंपदा तथागतो द्रष्टव्यः। तत्कस्य<br>हेतोः ? यैषा भगवन् लक्षणसंपत्तथागतेन भाषिता, अलक्षणसंपदेषा तथागतेन<br>भाषिता। तेनोच्यते लक्षणसंपदिति॥२०॥<p><p>भगवानाह- तत्किं मन्यसे सुभूते अपि नु तथागतस्यैवं भवति-मया धर्मो देशित<br>इति ? सुभूतिराह-नो हीदं भगवन् तथागतस्यैवं भवति-मया धर्मो देशित इति।<br>भगवानाह-यः सुभूते एवं वदेत्- तथागतेन धर्मो देशित इति, स वितथं वदेत्।<br>अभ्याचक्षीत मां स सुभूते असतोद्गृहीतेन। तत्कस्य हेतोः ? धर्मदेशना<br>धर्मदेशनेति सुभूते नास्ति स कश्चिद्धर्मो यो धर्मदेशना नामोपलभ्यते॥<p><p>एवमुक्ते आयुष्मान् सुभूतिर्भगवन्तमेतदवोचत्-अस्ति भगवन् केचित्सत्त्वा<br>भविष्यन्त्यनागतेऽध्वनि पश्चिमे काले पश्चिमे समये पश्चिमायां पञ्चशत्यां<br>सद्धर्मविप्रलोपे वर्तमाने, य इमानेवंरूपान् धर्मान् श्रुत्वा<br>अभिश्रद्धास्यन्ति। भगवानाह- न ते सुभूते सत्त्वा नासत्त्वाः। तत्कस्य<br>हेतोः ? सत्त्वाः सत्त्वा इति सुभूते सर्वे ते सुभूते असत्त्वास्तथागतेन<br>भाषिताः। तेनोच्यन्ते सत्त्वा इति॥२१॥<p><p>तत्किं मन्यसे सुभूते-अपि नु अस्ति स कश्चिद्धर्मः, यस्तथागतेनानुत्तरां<br>सम्यक्संबोधिमभिसंबुद्धः ? आयुष्मान् सुभूतिराह-नो हीदं भगवन्। नास्ति स<br>भगवन् कश्चिद्धर्मो यस्तथागतेनानुत्तरां सम्यक्संबोधिमभिसंबुद्धः।<br>भगवानाह-एवमेतत्सुभूते, एवमेतत्। अणुरपि तत्र धर्मो न संविद्यते<br>नोपलभ्यते। तेनोच्यते अनुत्तरा सम्यक्संबोधिरिति॥२२॥<p><p>अपि तु खलु पुनः सुभूते समः स धर्मो न तत्र कश्चिद्विषमः। तेनोच्यते<br>अनुत्तरा सम्यक्संबोधिरिति। निरात्मत्वेन निःसत्त्वत्वेन निर्जीवत्वेन<br>निष्पुद्गलत्वेन समा सा अनुत्तरा सम्यक्संबोधिः सर्वैः<br>कुशलैर्धर्मैरभिसंबुध्यते। तत्कस्य हेतोः ? कुशला धर्माः कुशला धर्मा इति<br>सुभूते अधर्माश्चैव ते तथागतेन भाषिताः। तेनोच्यन्ते कुशला धर्मा इति॥२३॥<p><p>यश्च खलु पुनः सुभुते स्त्री वा पुरुषो वा यावन्तस्त्रिसाहस्रमहासाहस्रे<br>लोकधातौ सुमेरवः पर्वतराजानः, तावतो राशीन् सप्तानां रत्नानामभिसंहृत्य<br>तथागतेभ्योऽर्हद्भयः सम्यक्संबुद्धेभ्यो दानं दद्यात्, यश्च कुलपुत्रो वा<br>कुलदुहिता वा इतः प्रज्ञापारमिताया धर्मपर्यायादन्तशश्चतुष्पादिकामपि<br>गाथामुद्गृह्य परेभ्यो देशयेत्, अस्य सुभूते पुण्यस्कन्धस्य असौ पौर्वकः<br>पुण्यस्कन्धः शततमीमपि कलां नोपैति, यावदुपनिषदमपि न क्षमते॥२४॥<p><p>तत्किं मन्यसे सुभूते-अपि नु तथागतस्यैवं भवति-मया सत्त्वाः परिमोचिता<br>इति? न खलु पुनः सुभूते एवं द्रष्टव्यम्। तत्कस्य हेतोः ? नास्ति सुभूते<br>कश्चित्सत्त्वो यस्तथागतेन परिमोचितः। यदि पुनः सुभूते<br>कश्चित्सत्त्वोऽभविष्यद्यस्तथागतेन परिमोचितः स्यात्, स एव<br>तथागतस्यात्मग्राहोऽभविष्यत्, सत्त्वग्राहो जीवग्राहः<br>पुद्गलग्राहोऽभविष्यत्। आत्मग्राह इति सुभूते अग्राह एष तथागतेन भाषितः।<br>स च बालपृथग्जनैरुद्गृहीतः। बालपृथग्जना इति सुभूते अजना एव ते तथागतेन<br>भाषिताः। तेनोच्यन्ते बालपृथग्जना इति॥२५॥<p><p>तत्किं मन्यसे सुभूते-लक्षणसंपदा तथागतो द्रष्टव्यः ? सुभूतिराह-नो हीदं<br>भगवन्। यथाहं भगवतो भाषितस्यार्थमाजानामि, न लक्षणसंपदा तथागतो<br>द्रष्टव्यः। भगवानाह-साधु साधु सुभूते, एवमेतत्सुभूते, एवमेतद्यथा वदसि।<br>न लक्षणसंपदा तथागतो द्रष्टव्यः। तत्कस्य हेतोः ? सचेत्पुनः सुभूते<br>लक्षणसंपदा तथागतो द्रष्टव्योऽभविष्यत्, राजापि चक्रवर्ती<br>तथागतोऽभविष्यत्। तस्मान्न लक्षणसंपदा तथागतो द्रष्टव्यः। आयुष्मान्<br>सुभुतिर्भगवन्तमेतदवोचत्-यथाहं भगवतो भाषितस्यार्थमाजानामि, न लक्षणसंपदा<br>तथागतो द्रष्टव्यः॥<p><p>अथ खलु भगवांस्तस्यां वेलायामिमे गाथे अभाषत-<p>ये मां रूपेण चाद्राक्षुर्ये मां घोषेण चान्वगुः।<p>मिथ्याप्रहाणप्रसृता न मां द्रक्ष्यन्ति ते जनाः॥१॥<p><p>धर्मतो बुद्धो द्रष्टव्यो धर्मकाया हि नायकाः।<p>धर्मता च न विज्ञेया न सा शक्या विजानितुम्॥२॥२६॥<p><p>तत्किं मन्यसे सुभूते लक्षणसंपदा तथागतेन अनुत्तरा<br>सम्यक्संबोधिरभिसंबुद्धा ? न खलु पुनस्ते सुभूते एवं द्रष्टव्यम्।<br>तत्कस्य हेतोः ? न हि सुभूते लक्षणसंपदा तथागतेन अनुत्तरा<br>सम्यक्संबोधिरभिसंबुद्धा स्यात्। न खलु पुनस्ते सुभूते कश्चिदेवं<br>वदेत्-बोधिसत्त्वयानसंप्रस्थितैः कस्यचिद्धर्मस्य विनाशः प्रज्ञप्तः<br>उच्छेदो वेति। न खलु पुनस्ते सुभूते एवं द्रष्टव्यम्। तत्कस्य हेतोः ? न<br>बोधिसत्त्वयानसंप्रस्थितैः कस्यचिद्धर्मस्य विनाशः प्रज्ञप्तो<br>नोच्छेदः॥२७॥<p><p>यश्च खलु पुनः सुभूते कुलपुत्रो वा कुलदुहिता वा<br>गङ्गानदीवालुकासमाँल्लोकधातून् सप्तरत्नपरिपूर्णं कृत्वा<br>तथागतेभ्योऽर्हद्भयः सम्यक्संबुद्धेभ्यो दानं दद्यात्, यश्च बोधिसत्त्वो<br>निरात्मकेष्वनुत्पत्तिकेषु धर्मेषु क्षान्तिं प्रतिलभते, अयमेव ततोनिदानं<br>बहुतरं पुण्यस्कन्धं प्रसवेदप्रमेयमसंख्येयम्। न खलु पुनः सुभूते<br>बोधिसत्त्वेन महासत्त्वेन पुण्यस्कन्धः परिग्रहीतव्यः। आयुष्मान्<br>सुभूतिराह- ननु भगवन् बोधिसत्त्वेन पुण्यस्कन्धः परिग्रहीतव्यः ?<br>भगवानाह-परिग्रहीतव्यः सुभूते नो ग्रहीतव्यः। तेनोच्यते परिग्रहीतव्य<br>इति॥२८॥<p><p>अपि तु खलु पुनः सुभूते यः कश्चिदेवं वदेत्-तथागतो गच्छति वा आगच्छति वा<br>तिष्ठति वा निषीदति वा, शय्यां वा कल्पयति, न मे सुभूते (स)<br>भाषितस्यार्थमाजानाति। तत्कस्य हेतोः ? तथागत इति सुभूते उच्यते न<br>क्वचिद्गतो न कुतश्चिदागतः। तेनोच्यते तथागतोऽर्हन् सम्यक्संबुद्ध<br>इति॥२९॥<p><p>यश्च खलु पुनः सुभूते कुलपुत्रो वा कुलदुहिता वा यावन्ति<br>त्रिसाहस्रमहासाहस्रे लोकधातौ पृथिवीरजांसि, तावतां लोकधातूनामेवंरूपं<br>मषिं कुर्यात् यावदेवमसंख्येयेन वीर्येण तद्यथापि नाम परमाणुसंचयः,<br>तत्किं मन्यसे सुभूते-अपि नु बहुः स परमाणुसंचयो भवेत् ?<br>सुभूतिराह-एवमेतद्भगवन्, एवमेतत्सुगत। बहुः स परमाणुसंचयो भवेत्। तत्कस्य<br>हेतोः ? सचेद्भगवन् बहुः परमाणुसंचयोऽभविष्यत्, न<br>भगवानवक्ष्यत्-परमाणुसंचय इति। तत्कस्य हेतोः ? योऽसौ भगवन्<br>परमाणुसंचयस्तथागतेन भाषितः, असंचयः स तथागतेन भाषितः। तेनोच्यते<br>परमाणुसंचय इति। यश्च तथागतेन भाषितस्त्रिसाहस्रमहासाहस्रो लोकधातुरिति,<br>अधातुः स तथागतेन भाषितः। तेनोच्यते त्रिसाहस्रमहासाहस्रो लोकधातुरिति।<br>तत्कस्य हेतोः ? सचेद्भगवन् लोकधातुरभविष्यत्, स एव<br>पिण्डग्राहोऽभविष्यत्। यश्चैव पिण्डग्राहस्तथागतेन भाषितः, अग्राहः स<br>तथागतेन भाषितः। तेनोच्यते पिण्डग्राह इति। भगवानाह- पिण्डग्राहश्चैव<br>सुभूते अव्यवहारोऽनभिलाप्यः। न स धर्मो नाधर्मः। स च<br>बालपृथग्जनैरुद्गृहीतः॥३०॥<p><p>तत्कस्य हेतोः ? यो हि कश्चित्सुभूते एवं वदेत्-आत्मदृष्टिस्तथागतेन<br>भाषिता, सत्त्वदृष्टिर्जीवदृष्टिः पुद्गलदृष्टिस्तथागतेन भाषिता, अपि नु<br>स सुभूते सम्यग्वदमानो वदेत् ? सुभूतिराह-नो हीदं भगवन्, नो हीदं सुगत, न<br>सम्यग्वदमानो वदेत्। तत्कस्य हेतोः ? या सा भगवन् आत्मदृष्टिस्तथागतेन<br>भाषिता, अदृष्टिः सा तथागतेन भाषिता। तेनोच्यते आत्मदृष्टिरिति॥<p><p>भगवानाह-एवं हि सुभूते बोधिसत्त्वयानसंप्रस्थितेन सर्वधर्मा ज्ञातव्या<br>द्रष्टव्या अधिमोक्तव्याः। तथाच ज्ञातव्या द्रष्टव्या अधिमोक्तव्याः, यथा<br>न धर्मसंज्ञायामपि प्रत्युपतिष्ठेन्नाधर्मसंज्ञायाम्। तत्कस्य हेतोः ?<br>धर्मसंज्ञा धर्मसंज्ञेति सुभूते असंज्ञैषा तथागतेन भाषिता। तेनोच्यते<br>धर्मसंज्ञेति॥३१॥<p><p>यश्च खलु पुनः सुभूते बोधिसत्त्वो<br>महासत्त्वोऽप्रमेयानसंख्येयांल्लोकधातून् सप्तरत्नपरिपूर्णं कृत्वा<br>तथागतेभ्योऽर्हद्भयः सम्यक्संबुद्धेभ्यो दानं दद्यात्, यश्च कुलपुत्रो वा<br>कुलदुहिता वा इतः प्रज्ञापारमिताया धर्मपर्यायादन्तशश्चतुष्पादिकामपि<br>गाथामुद्गृह्य धारयेद्देशयेद्वाचयेत् पर्यवाप्नुयात्, परेभ्यश्च विस्तरेण<br>संप्रकाशयेत्, अयमेव ततोनिदानं बहुतरं पुण्यस्कन्धं<br>प्रसुनुयादप्रमेयमसंख्येयम्। कथं च संप्रकाशयेत् ? तद्यथाकाशे-<p><p>तारका तिमिरं दीपो मायावश्याय बुद्बुदम्।<p>स्वप्नं च विद्युदभ्रं च एवं द्रष्टव्य संस्कृतम्॥<p>तथा प्रकाशयेत्, तेनोच्यते संप्रकाशयेदिति॥<p><p>इदमवोचद्भगवान् आत्तमनाः। स्थविरसुभूतिस्ते च<br>भिक्षुभिक्षुण्युपासकोपासिकास्ते च बोधिसत्त्वाः सदेवमानुषासुरगन्धर्वश्च<br>लोको भगवतो भाषितमभ्यनन्दन्निति॥३२॥<p><p>॥आर्यवज्रच्छेदिका भगवती प्रज्ञापारमिता समाप्ता॥<div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-345589268576990312?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-6946739137629234482009-05-26T09:35:00.001+08:002009-05-26T09:35:34.132+08:00快2年了哦就快两年了,不知不觉中发生了很多的事情。<br>在这创业的时候回头看过去确实劲头少了很多,不过耐心增强了很多。<br>对自己也已经不再是仰视而变为了俯视。<br>对工作也不再是玩耍而把它做为了事业。<br>对家人也不再是莫不关心而成了时时羁绊。<p>我人生的又一阶段到来了,感觉自己长大一点了。好像长的有点晚了。。。。<div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-694673913762923448?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-65119373565694886422009-05-26T09:27:00.001+08:002009-05-26T09:27:11.795+08:00自己写的PDO调用Mysql存储过程的例子/**<br> * 呼叫存储过程<br> *<br> * @param string $sql<br> * @return object<br> */<br> function callSp($sql){<br> $res = FALSE;<br> $this->connection();<br> if(!$this->db){<br> $this->error[2] = "DB query: connection failure";<br> }else{<br> $this->result = $this->db->query($sql);<br> if ($this->result){<br> do {<br> $rowset = $this->result->fetchAll(PDO::FETCH_ASSOC);<br> if ($rowset) {<br> $res[] = $rowset;<br> }<br> } while ($this->result->nextRowset());<br> }<br> }<br> return $res;<br> }<p>上面这段fun有点断章取义,$this->connection(); 这个方法里封装的其实就是new PDO并把这个实例赋给$this->db<div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-6511937356569488642?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-85621134311927911202009-05-02T18:44:00.000+08:002009-05-02T18:45:00.078+08:00推荐:http://blog.s135.com<a href="http://blog.s135.com">http://blog.s135.com</a><div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-8562113431192791120?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-1667067419088561942009-04-30T10:05:00.001+08:002009-04-30T10:05:25.438+08:00http 状态码1**:请求收到,继续处理<br>2**:操作成功收到,分析、接受<br>3**:完成此请求必须进一步处理<br>4**:请求包含一个错误语法或不能完成<br>5**:服务器执行一个完全有效请求失败<br>100――客户必须继续发出请求<br>101――客户要求服务器根据请求转换HTTP协议版本<br>200――交易成功<br>201――提示知道新文件的URL<br>202――接受和处理、但处理未完成<br>203――返回信息不确定或不完整<br>204――请求收到,但返回信息为空<br>205――服务器完成了请求,用户代理必须复位当前已经浏览过的文件<br>206――服务器已经完成了部分用户的GET请求<br>300――请求的资源可在多处得到<br>301――删除请求数据<br>302――在其他地址发现了请求数据<br>303――建议客户访问其他URL或访问方式<br>304――客户端已经执行了GET,但文件未变化<br>305――请求的资源必须从服务器指定的地址得到<br>306――前一版本HTTP中使用的代码,现行版本中不再使用<br>307――申明请求的资源临时性删除<br>400――错误请求,如语法错误<br>401――请求授权失败<br>402――保留有效ChargeTo头响应<br>403――请求不允许<br>404――没有发现文件、查询或URl<br>405――用户在Request-Line字段定义的方法不允许<br>406――根据用户发送的Accept拖,请求资源不可访问<br>407――类似401,用户必须首先在代理服务器上得到授权<br>408――客户端没有在用户指定的饿时间内完成请求<br>409――对当前资源状态,请求不能完成<br>410――服务器上不再有此资源且无进一步的参考地址<br>411――服务器拒绝用户定义的Content-Length属性请求<br>412――一个或多个请求头字段在当前请求中错误<br>413――请求的资源大于服务器允许的大小<br>414――请求的资源URL长于服务器允许的长度<br>415――请求资源不支持请求项目格式<br>416――请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求<br>也不包含If-Range请求头字段<br>417――服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下<br>一级服务器不能满足请求<br>500――服务器产生内部错误<br>501――服务器不支持请求的函数<br>502――服务器暂时不可用,有时是为了防止发生系统过载<br>503――服务器过载或暂停维修<br>504――关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长<br>505――服务器不支持或拒绝支请求头中指定的HTTP版本<div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-166706741908856194?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-49998914201778352972009-04-17T21:16:00.001+08:002009-04-17T21:16:16.294+08:00访问我的Netlog个人天地<table width="620" border="0" cellspacing="0" cellpadding="0" style="line-height:18px;"> <tr> <td height="10" colspan="4" bgcolor="#303030"> </td> <td height="10" colspan="4"> </td> </tr> <tr> <td height="10" colspan="3" bgcolor="#303030"> </td> <td height="10" bgcolor="#efefef"> </td> <td height="10" colspan="2" bgcolor="#efefef"> </td> <td width="15" bgcolor="#efefef"> </td> <td width="15" rowspan="3"> </td> </tr> <tr> <td width="30" height="90" bgcolor="#303030"> </td> <td width="115" height="90" valign="top" bgcolor="#303030"> <table width="86" border="0" cellpadding="3" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td text-align:"center" style="text-align: center; padding: 3px 0;"><img src="http://zh.netlog.com/go/mainphoto/userid=72488185" alt="" width="80" height="60" /></td> </tr> </table> <br /> <font face="Arial, Helvetica, sans-serif" size="-1" color="#FFFFFF" style="font-size: 12px;"> 陈 浩<br /> <font size="-2" style="font-size: 11px;" > 男生 - 25岁<br /> 上海</font></font><br /><br /> <br /> <table border="0" cellspacing="0" cellpadding="2"> <tr> <td width="35" align="center" bgcolor="#444444"><font face="Arial, Helvetica, sans-serif" size="-1" color="#FFFFFF"><b>1</b></font></td> <td> </td> <td><font face="Arial, Helvetica, sans-serif" size="-1" color="#888888" style="font-size: 12px;">朋友</font></td> </tr> <tr> <td width="35" height="5" align="center"></td> <td height="5"></td> <td height="5"></td> </tr> </table> </td> <td width="20" height="90" valign="top" bgcolor="#303030"><img src="http://v.netlogstatic.com/v4.00/1486//s/i/mail/balloon-point.gif" width="20" height="55" align="top"></td> <td width="15" height="90" bgcolor="#efefef"> </td> <td width="15" height="90" bgcolor="#efefef"> </td> <td style="font-size: 13px;" height="90" bgcolor="#efefef"><font face="Arial, Helvetica, sans-serif" color="#666666"><font color="#bd0710" size="+2">嗨!</font><br /> <br /> 我创建了<font color="#000000"><b>Netlog</b></font>的个人天地,包括了我的照片、视频影片、博客和参与的活动,我希望添加你为朋友,来将这些展示给你看! 你首先需要 <a href="http://zh.netlog.com/go/mailurl/type=invite_1&mailid=9903960&id=1&url=-L2dvL3JlZ2lzdGVyL2lkPTcyODI1MTQ2MSZpPWg5MQ__"><font color="#bd0710">在Netlog上注册</font></a>! <br /> 然后你就可以创造自己的个人天地了。</font> <br /> <br /> <table border="0" cellpadding="0" cellspacing="0" bgcolor="#BD0710" background="http://v.netlogstatic.com/v4.00/1486//s/i/mail/btn-gradient.gif"> <tr> <td height="3" colspan="4"></td> </tr> <tr> <td> </td> <td><img src="http://v.netlogstatic.com/v4.00/1486//s/i/mail/btn-logo.gif" alt="" width="35" height="35" /></td> <td><a href="http://zh.netlog.com/go/mailurl/type=invite_1&mailid=9903960&id=2&url=-L2dvL3JlZ2lzdGVyL2lkPTcyODI1MTQ2MSZpPWg5Mg__"><font face="Arial, Helvetica, sans-serif" size="+1" color="#FFFFFF">看一看</font></a> </td> <td width="10"> </td> </tr> <tr> <td height="3" colspan="4"></td> </tr> </table> <br /> <font face="Arial, Helvetica, sans-serif" size="-1" style="font-size: 13px;" color="#666666">祝好,<br />浩</font> </td> <td width="15" bgcolor="#efefef"> </td> </tr> <tr> <td colspan="3" rowspan="4" bgcolor="#303030"> </td> <td width="15" bgcolor="#efefef"> </td> <td colspan="2" bgcolor="#efefef"> </td> <td width="15" bgcolor="#efefef"> </td> </tr> <tr> <td width="15" rowspan="3" bgcolor="#303030"> </td> <td colspan="4" bgcolor="#FFFFFF"> </td> </tr> <tr> <td bgcolor="#FFFFFF"> </td> <td valign="top" bgcolor="#FFFFFF"> <font face="Arial, Helvetica, sans-serif" size="-2" color="#666666"> 上面这个按钮没有显示完全么? <br /> 点击<a href="http://zh.netlog.com/go/mailurl/type=invite_1&mailid=9903960&id=3&url=-L2dvL3JlZ2lzdGVyL2lkPTcyODI1MTQ2MSZpPWg5Mw__"><font color="#bd0710">此处</font></a>,或者复制下面,在浏览器地址栏中的链接。<br /> <a href="http://zh.netlog.com/go/mailurl/type=invite_1&mailid=9903960&id=4&url=-L2dvL3JlZ2lzdGVyL2lkPTcyODI1MTQ2MSZpPWg5NA__"><font color="#bd0710">http://zh.netlog.com/go/mailurl/type=invite_1&mailid=9903960&id=5&url=-L2dvL3JlZ2lzdGVyL2lkPTcyODI1MTQ2MSZpPWg5NQ__</font></a></font> <br /><br /><br /> <br /><br /> <img src="http://v.netlogstatic.com/v4.00/1486//s/i/mail/netlog-logo.gif" alt="" width="112" height="23" /><br /><br /> <font face="Arial, Helvetica, sans-serif" size="-2" color="#666666"> <strong>你不想接收这些电子邮件吗?</strong><br /> 不想再接收来自Netlog的电子邮件吗? <a href="http://zh.netlog.com/go/mailurl/type=invite_1&mailid=9903960&id=7&url=-L2dvL25vbWFpbHMvaW52aXRlL2VtYWlsPS1hSFZ0Wlc0eExtSnNiMmRBWW14dloyZGxjaTVqYjIwXyZjb2RlPTEwOTIzNDEzJmlkPTcyODI1MTQ2MSZpPWg5Ng__"><font color="#bd0710">点此</font></a>.</p> <strong>Netlog NV/SA</strong> - E. Braunplein 18. B-9000 Gent. Belgium. . <br /> BE0859635972 - <a href="mailto:abuse-zh@netlog.com"><font color="#666666">abuse-zh@netlog.com</font></a></p> </font> </td> <td colspan="2" rowspan="2" bgcolor="#FFFFFF"> </td> </tr> <tr> <td bgcolor="#FFFFFF"> </td> <td bgcolor="#FFFFFF"> </td> </tr> </table> <img src="http://zh.netlog.com/go/mailimage/type=invite_1&mailid=9903960&header.gif" alt="" /> <div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-4999891420177835297?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-47389054379276911552009-04-11T20:33:00.001+08:002009-04-11T20:33:51.026+08:00Document root must be a directory这是系统起了SELinux的策略。把目录或文件设成了user_home_t类型,因此apache的进程没有权限,无法访问。针对Apache的进程所使用的SELinux<br>target policy规定了apache的进程只能访问httpd_sys_content_t类型的目录或文件。<br>解决办法:<br>把目录或文件的策略类型改成 httpd_sys_content_t 就可以了。<br># chcon -R -h -t httpd_sys_content_t /data<br>然后可以用 ls -laZ 命令查看文件目录的策略类型。<div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-4738905437927691155?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-60116077234322573222009-04-08T10:54:00.001+08:002009-04-08T10:54:04.365+08:00关于使用zend studio for eclipse不能激活代码提示功能的解决办法相信有蛮多人用zend studio for<br>eclipse写代码吧,但有时候好好的一个项目就突然没得语法提示,很郁闷。其实这是项目没有经过zend studio for eclipse<br>编译(应该是建立索引吧)导致的,那么就只要让它重新编译项目代码即可。<br> 操作如下:<br> 随便新建一个项目,比如test。然后找到test项目所在的目录,把目录下的.cache和.setting都复制到要重编译的项目的目录下,把test项目中的.project中的name改成要重编译的项目的项目名称,再复制到该目录下替换掉原有的.project.重启等待编译完成即可解决代码提示问题。<div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-6011607723432257322?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-41451209667685416432009-03-24T10:12:00.001+08:002009-03-24T10:12:18.839+08:00Centos NFScentos nfs<p><-- server:192.168.1.73 --><p>[root@localhost]# cat /etc/sysconfig/network<br>NETWORKING=yes<br>HOSTNAME=localhost.localdomain<p>[root@localhost]#cat /etc/hosts<br>127.0.0.1 localhost.localdomain localhost<br>192.168.1.76 client.localdomain client<p>//开机启动nfs server<br>[root@localhost]#chkconfig nfs on<p>//启动nfs<br>[root@localhost]# mkdir /data/cache<br>[root@localhost]# vi /etc/exports<br>/data/cache/ 192.168.1.76(rw,no_root_squash,no_all_squash,sync)<p><-- client:192.168.1.76 --><p>bsd#mkdir /data/cache/<br>bsd#mount 192.168.1.73:/data/cache /data/cache<p><br>//开机挂载<br>bsd#vi /etc/fstab<p>//加入下行<br>192.168.1.73:/data/cache /data/cache nfs rw 0 0<div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-4145120966768541643?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-61035591602733450922009-03-20T18:05:00.001+08:002009-03-20T18:05:41.424+08:00给eclipse上SVN插件Help->Software Updates->Find and Install-> Search for new features to<br>install ->New Remote Site<br>加上这个站<a href="http://subclipse.tigris.org/update">http://subclipse.tigris.org/update</a><p>之后就可以在software updates 里看到subclipse了<div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-6103559160273345092?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-37750002751742944702009-03-19T17:25:00.001+08:002009-03-19T17:25:07.083+08:00[转]为 PHP 应用提速、提速、再提速!,第 1 部分: 使用操作码缓存软件提升性能和吞吐量2007 年 3 月 20 日<br>PHP 是一种脚本语言,常用于创建 Web 应用程序。它易于掌握,并能迅速生成可视化结果。然而,由于 PHP 是以解释的方式执行的,所以<br>PHP 代码每次执行时都会被解析和转换成操作码(opcode)。操作码缓存能消除这项重复的工作,使 PHP 应用程序运行得更快。<br>在很短的时间内,PHP 成为了一种非常流行的开发 Web 应用程序的程序设计语言。对初学者来说,PHP<br>易于安装和学习。对于有经验的开发人员而言,PHP(从 V5 开始)提供了强大的面向对象特性。PHP<br>开发人员拥有庞大的群体,大量的开源及商业库和工具扩展了该核心语言的功能。PHP 能迅速产生可视化结果,因此备受众人推崇。<br>与其他开发 Web 应用程序的脚本语言(包括 Perl、Python 和 Ruby)相似,每次 HTTP 请求调用时,PHP<br>代码都会被解析和翻译为操作码(PHP 引擎直接执行的原语指令 ----<br>类似于汇编语言)再执行。在要求很低或可忽略的情况下,服务器看上去能立即执行这个复杂的解释过程。但是一旦处理的页面增加,解释 ----<br>从本质上说,重复工作 ---- 就会对服务器造成很大的负担。在某些情况下,"编译" PHP<br>代码的时间会远远超过执行该代码所需的时间。因此,当需求增加时,您常常会自食其果,因为处理这些不断解释和动态生成的页面需要消耗更多的系统资源。<br>若您对处理器和 RAM 的预算没有限制,那么就大可不必通过优化应用栈(硬件、操作系统、数据库、Web 服务器和 PHP<br>代码)来保证站点的可响应性。然而,由于资金通常都是最缺乏的资源,所以改善性能是必不可少的。调优意味着对系统增加内存、修改操作系统参数、加速<br>Web 或数据库服务器、提高代码效率或者这其中的一些组合。每一项都有其各自的作用。<br>不要浪费周期 ---- 重复使用<br>节约 CPU 周期的另一种方法是减少运行 PHP 应用程序所需的重复工作。当然,没有必要每次都把同样的 PHP 代码翻译一遍。PHP<br>代码被翻译成操作码后,可以把它保存起来并重复使用 ---- 直到原始代码被修改。确实,缓存 ---- 用于保存和重用 PHP 操作码 ---- 是几种<br>PHP 加速器内部的机制,包括开源 Alternative PHP Cache (APC)、支持 PHP 的 Turck<br>MMCache、XCache、eAccelerator 和商业 Zend<br>Platform。后三类加速器能够缓存和优化字节码,这为系统提供了更多的速度提升。<br>这个月,我将探究如何安装、部署和配置 XCache。XCache 相对较新,但是很多站点使用它的效果都很好。此外,XCache<br>易于构建、安装和配置,因为它是做为 PHP 扩展实现的。不需对 Apache 和 PHP 进行重编译。<br>本文基于 XCache V1.2.0。它可为 PHP V4.3.11 至 V4.4.4、PHP V5.1.x 至 V5.2.x 以及 PHP<br>V6 的早期版本提供可靠支持(XCache 并不支持 PHP V5.0.x)。XCache 兼容 mod_php 和 FastCGI<br>但并不支持 Common Gateway Interface (CGI) 和命令行 PHP 解释器。XCache<br>源代码能构建在许多系统上,包括 FreeBSD、Sun Solaris、Linux(R) 和这里所示的 Mac OS X。使用 Cygwin<br>UNIX(R) 仿真环境或 Visual C,能在 Microsoft(R) Windows(R) 上构建 XCache。还可以为 Cygwin 或原生<br>Win32 构建 XCache。后者与 PHP 的官方 Win32 版本兼容。<br>本文的演示基于 Apache V2.2.3、PHP V5.2.0、XCache V1.2.0(2006 年 10 月发布)和 Mac OS<br>X V10.4.8 Tiger 上的 Xcode V2.4.1。硬件平台为配有 2-GHz Intel(R) Core Duo 处理器和 2<br>GB RAM 的 Apple MacBook。<p><p><p>回页首<p><br>构建 XCache 的基本步骤<br>在开始之前,首先确保 PHP 正常安装并核实 phpize 是否位于 shell 的 PATH 下。同时,还需要一个 C 编译器,例如<br>GNU Compiler Collection (GCC),和一组包含 make 和 m4 的开发工具。在 Mac OS X 上,免费的<br>Xcode 软件开发环境提供了必需的构建工具。<br>完成以下操作步骤,在 Mac OS X 上构建、部署 XCache 并对其进行性能检测。在其他平台上构建 XCache 与之类似。如果使用<br>Linux,则其发行版可能已经包含了 XCache 或者已经将其以预先打包好的格式提供给您。<br>增加 Mac OS X 的共享内存<br>首先增加 Mac OS X 上留出的共享内存总量。要实现这一目的,需创建(或编辑)文件 /etc/sysctl.conf 并创建如下条目:<p>清单 1. 增加 Mac OS X 上留出的共享内存总量<br> <br>kern.sysv.shmmax=33554432<br>kern.sysv.shmmin=1<br>kern.sysv.shmmni=32<br>kern.sysv.shmseg=8<br>kern.sysv.shmall=8192<p>这些设置把共享内存总量增加到了 32 MB。如还需进一步扩展共享内存,可以把 kern.sysv.shmall 设定为<br>kern.sysv.shmmax 除以硬件页面大小。使用 sysctl hw.pagesize 能获得硬件页面大小。例如,假设需要 128<br>MB 的共享内存,那么设定 kern.sysv.shmmax=134217728 并设定 kern.sysv.shmall=32768。<br>重启 Mac OS X 使修改生效。重启后,检验新设置是否生效,键入:<br>sysctl -a | grep kern.sysv<p>通过源代码构建 XCache<br>接下来,通过源代码构建 XCache。从 <a href="http://xcache.lighttpd.net">http://xcache.lighttpd.net</a> 处下载源代码。下载完后解压代码,并转换到<br>.tar 文件创建的新目录。<p>清单 2. 通过源代码构建 XCache<br> <br>$ cd /tmp<br>$ wget <a href="http://210.51.190.228/pub/XCache/Releases/xcache-1.2.0.tar.gz">http://210.51.190.228/pub/XCache/Releases/xcache-1.2.0.tar.gz</a><br>$ tar xzf xcache-1.2.0.tar.gz<br>$ cd xcache<p>运行 phpize 为编译 XCache 做准备。<p>清单 3. 运行 phpize<br> <br>$ phpize<br>Configuring for:<br>PHP Api Version: 20020918<br>Zend Module Api No: 20020429<br>Zend Extension Api No: 20050606<p>运行 configure,创建适合于原生操作系统的 makefile。<p>清单 4. 运行 configure 创建 makefile<br> <br>$ ./configure --enable-xcache --enable-xcache-coverager<br>checking build system type... i686-apple-darwin8.8.1<br>checking host system type... i686-apple-darwin8.8.1<br>...<br>creating libtool<br>configure: creating ./config.status<br>config.status: creating config.h<p>此处,--enable-xcache 选项包含 XCache 支持,--enable-xcache-coverager<br>选项包含用于测量加速器功效的附加特性。要启用操作码优化,添加 --enable-xcache-optimizer。<br>当然,下一步将使用 make 命令行构建和安装代码。运行 make,然后作为 root 用户运行 make install 。<p>清单 5. 利用 make 构建和安装代码<br> <br>$ make<br>...<br>cp ./xcache.so /Users/strike/tmp/xcache/modules/xcache.so<br>Build complete.<p>$ sudo make install<br>Installing shared extensions: /usr/lib/php/extensions/no-debug-non-zts-20020429/<p>如果上述两项操作顺利完成,那么 XCache 将位于<br>/usr/lib/php/extensions/no-debug-non-zts-20020429/xcache.so。(路径<br>/usr/lib/php/extensions/no-debug-non-zts-20020429 反映了正在使用的 API 版本和用于构建<br>PHP 的编译选项。如果启用了试用的 Zend Thread Safety 特性,则 "no-debug" 应为<br>"debug","non-zts" 应为 "zts"。)<br>修改 php.ini 文件<br>因为安装了扩展,所以必需修改 php.ini 文件,使之包含 XCache 扩展并对其进行配置。打开文件<br>/private/etc/php.ini,在其中添加如下代码行:<p>清单 6. 为 XCache 扩展修改 php.ini 文件<br> <br>[xcache-common]<br>zend_extension =<br>/usr/lib/php/extensions/no-debug-non-zts-20020429/xcache.so<p>[xcache.admin]<br>; Change xcache.admin.user to your preferred login name<br>xcache.admin.user = "admin"<p>; Change xcache.admin.pass to the MD5 fingerprint of your password<br>; Use md5 -s "your_secret_password" to find the fingerprint<br>xcache.admin.pass = "0ad72f3f352fcd8acdf266bafd0ac48d"<p>[xcache]<br>; Change xcache.size to tune the size of the opcode cache<br>xcache.size = 24M<br>xcache.shm_scheme = "mmap"<br>xcache.count = 2<br>xcache.slots = 8K<br>xcache.ttl = 0<br>xcache.gc_interval = 0<p>; Change xcache.var_size to adjust the size of variable cache<br>xcache.var_size = 8M<br>xcache.var_count = 1<br>xcache.var_slots = 8K<br>xcache.var_ttl = 0<br>xcache.var_maxttl = 0<br>xcache.var_gc_interval = 300<br>xcache.test = Off<br>xcache.readonly_protection = On<br>xcache.mmap_path = "/tmp/xcache"<br>xcache.coredump_directory = ""<br>xcache.cacher = On<br>xcache.stat = On<br>xcache.optimizer = Off<p>[xcache.coverager]<br>xcache.coverager = On<br>xcache.coveragedump_directory = ""<p>注意:为了简明起见,此处省略了一些注释。要了解每个参数的含义,请参阅 XCache 源代码中 xcache.ini 文件设置的例子。<br>操作码和变量缓存的大小是 32 MB,这是 /etc/rc 留出的最大值。对于 Mac OS X,xcache.mmap_path<br>必须为文件名。因为 PHP 代码将在 MacBook 上运行,所以 xcache.count 应设为 2,表示 MacBook 中 CPU<br>的数量。要访问 XCache 统计信息页面,需改变 xcache.admin.pass 设置。运行:<br>$ md5 -s "password"<p>此处 password 为您的密码。把输出复制给 xcache.admin.pass。例如,若需将密码设定为 op3nsesam3,可以运行:<br>$ md5 -s "op3nsesam3"<br>MD5 ("op3nsesam3") = cd959ac3debe8f587546a3fa353b3268<p>然后把 cd959ac3debe8f587546a3fa353b3268 复制给 xcache.admin.pass。<br>重启 Web 服务器<br>设置好 XCache 后,重启 Apache Web 服务器。对于大多数系统,可以以 root 用户的身份使用 apachectl restart 进行重启。<br>$ sudo apachectl restart<br>/usr/sbin/apachectl restart: httpd restarted<p>创建程序以调用 phpinfo()<br>检验 XCache 是否已启用,需创建一个小型 PHP 程序用于调用 phpinfo() 并在 Web<br>浏览器中打开那个文件。这样就能看到类似下图的 XCache 版面。<p>图 1. phpinfo() 方法给出了 XCache 设置<p><br>监控 XCache<br>要监控 XCache,需安装 XCache 源代码的 admin 目录中的管理页面。把整个 admin 目录复制到 Apache<br>文档根目录下。通常来说,Mac OS X 中的文档根目录为 /Library/WebServer/Documents。<br>$ cp -pr admin /Library/WebServer/Documents<p>复制完成后,使用 sudo apachectl restart 重启 Web 服务器。用浏览器打开<br><a href="http://localhost/admin">http://localhost/admin</a>,检验管理面板是否工作正常。请参阅类似图 2 的面板。<p>图 2. XCache Administration 面板<p><br>测试应用程序<br>选择一个或两个应用程序进行测试。您可以使用自己的代码或者,如果想要更复杂一点,使用大型的 PHP 应用程序,例如 phpMyAdmin 或者<br>Serendipity。<p><p><p>回页首<p><br>运行性能检测<br>Apache HTTP Web 服务器提供了一个叫做 ab 的工具,即 Apache HTTP<br>服务器性能检测(benchmark)工具的缩写。ab 用于为 PHP 页面自动化处理大量的请求。phpMyAdmin<br>应用程序将会是一个很好的选择,因为它很可能已经安装到您的系统上了。<br>ab 工具易于使用:只需提供给它一个重复数和一个 URL。ab 工具对这个 URL 提交若干次请求并返回统计信息。由于 XCache<br>已启用,所以第一个性能检测显示了加速后的性能。<br>在运行 ab 之前,用浏览器导航到 <a href="http://localhost/phpmyadmin/%E3%80%82">http://localhost/phpmyadmin/。</a>访问这个 PHP<br>页面一次,便会加载用来将此页呈现到缓存内的所有 PHP 代码。此时,运行如下的性能检测,重复 100000 次。<p>清单 7. phpMyAdmin 的性能检测<br> <br>$ ab -n 100000 <a href="http://localhost/phpmyadmin">http://localhost/phpmyadmin</a><br>...<br>Concurrency Level: 1<br>Time taken for tests: 14.597 seconds<br>Complete requests: 100000<br>Failed requests: 98262<br> (Connect: 49131, Length: 49131, Exceptions: 0)<br>Broken pipe errors: 0<br>Non-2xx responses: 50869<br>Total transferred: 25739714 bytes<br>HTML transferred: 12005084 bytes<br>Requests per second: 6850.72 [#/sec] (mean)<br>Time per request: 0.15 [ms] (mean)<br>Time per request: 0.15 [ms] (mean, across all concurrent requests)<br>Transfer rate: 1763.36 [Kbytes/sec] received<p>有用的统计信息包括每秒的请求数和完成所有测试的总时间。对于前者,值越大越好;对于后者,值越小越好。<br>现在,在 php.ini 文件中禁用 XCache,然后再一次运行性能检测,如清单 8 所示。可以注释掉对 XCache<br>扩展的引用,或者关闭所有的 XCache 特性。再次运行性能检测之前,需重启 Apache。<p>清单 8. 禁用 XCache 时的 phpMyAdmin 性能检测<br> <br>$ sudo apachectl restart<br>$ ab -n 100000 <a href="http://localhost/phpmyadmin">http://localhost/phpmyadmin</a><br>Concurrency Level: 1<br>Time taken for tests: 17.771 seconds<br>Complete requests: 100000<br>Failed requests: 98256<br> (Connect: 49128, Length: 49128, Exceptions: 0)<br>Broken pipe errors: 0<br>Non-2xx responses: 50872<br>Total transferred: 25741232 bytes<br>HTML transferred: 12005792 bytes<br>Requests per second: 5627.15 [#/sec] (mean)<br>Time per request: 0.18 [ms] (mean)<br>Time per request: 0.18 [ms] (mean, across all concurrent requests)<br>Transfer rate: 1448.50 [Kbytes/sec] received<p>此处,XCache 禁用之后,每秒的请求数有所下降,表示 Apache 服务器处理每个请求需更长的时间。运行整套测试所需的时间也因此增加了。<br>尽管这只是一个简单的性能检测 ---- phpMyAdmin 连接数据库的功能被禁用了,这样能限制单独解释 PHP 的处理时间 ----<br>并且不是非常科学,但它确实向我们演示了使用 XCache 能够完成哪些任务。对于微小的投入(欣慰地是,PHP 或 Apache<br>不需重编译),XCache 能产生一个相对较大的回报。代码越复杂,可能的受益也越大。<br>若想了解 XCache 是如何有效地运行的,请访问 <a href="http://localhost/xadmin">http://localhost/xadmin</a> 并单击 List<br>PHP。您能看到缓存中的 PHP 文件列表,连同 cache hit、操作码的代码大小、源文件的字节大小,等等。图 3 显示了 XCache<br>专门为 XAMPP 栈包构建时的结果。<p>图 3. XCache 管理页面反映了缓存的状态和内容<p><br>前面已经提及,XCache 是许多加速器中的一种。在强大的 Zend 软件中还有许多免费的开源替代方案和一个商业化产品可选。每种 PHP<br>加速器都有自己的系统需求,所以应主要根据现有的或预期的配置以及应用程序的特性选择合适的加速器。从中推荐一种很难,但是安装编译器缓存是我建议您务必要做的。<p><p><p>回页首<p><br>大量的调优选择<br>除了缓存之外,还有许多其他途径可以加速应用程序。可以通过删除 PHP 引擎的一些很深奥的特性来简化它。例如,若不需使用 TCP/IP V6<br>(IPv6) 网络,便可在构建 PHP 时禁用该属性。通过在 PHP 源代码树的顶部输入 ./configure --help 可以参阅<br>PHP 配置选项的完整列表。无论选择哪一个配置选项,都应该将:<br>--enable-inline-optimization --disable-debug<p>添加到最终的配置命令。前一选项使 PHP 有可能更快地执行(不需使用类似 Zend Engine<br>的软件进行额外的操作码优化);后一选项取消了 PHP 的调试模式,只有当需要解决 PHP 应用服务器本身的问题时才需开启该模式。<br>当然,正如一些 C 应用程序,我们能利用 C 编译器构建更佳的可执行程序。如果把 PHP 作为 Linux 或 FreeBSD 上的<br>Apache Dynamic Shared Object (DSO) 在 x86 处理器上运行,需考虑在 CFLAGS(存储 C<br>编译器选项的环境变量)中添加 -prefer-non-pic 选项。non-pic 会使用位置独立的代码构建 PHP 并能提供 10%<br>的性能提升。还可以使用 CFLAGS 中的 -march 确定处理器的类型,例如 -march=opteron 表示处理器类型为 AMD<br>Opteron。<br>提升速度的另一个途径是操作码优化。此处,Zend Engine 之类的软件会优化编译过程中产生的操作码,这理论上会减少代码执行的工作总量。<br>缓存和优化都是透明的,并不需额外的编程。要应用一些优化操作,执行结构分析,或检查代码在哪花费了时间。重复的工作既不经济又运算缓慢,这显然会产生瓶颈。通过代码优化弥补周期的不足是很有价值的<br>---- 但是在结构分析之前不要尝试进行任何优化。<p><p><p>回页首<p><br>展望未来<br>在接下来的几个月我将再次讨论优化,会谈及调试、快速正文搜索、交替 Web 服务器等内容。同时,还将研究一个或多个 PHP<br>加速器和操作码优化器。实现 10% 到 200% 的性能提升只需几个小时的优化和修补。想像一下您的机器利用这些空闲的周期能做多少事情吧!<div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-3775000275174294470?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-34997429697231915212009-03-09T16:17:00.001+08:002009-03-09T16:17:52.919+08:00mysql<a href="http://www.ccidnet.com/images/tech/database/zhuanti/mysqlyh/index.htm">http://www.ccidnet.com/images/tech/database/zhuanti/mysqlyh/index.htm</a><p>-- <br><a href="http://xn---www-z94f82po8e3yfh56az8jiyrf48aryn1pbd54lrhq.qoolu.com">上海酷噜网络科技有限公司-www.qoolu.com</a><br>MSN & Email >> <a href="mailto:humen1@gmail.com">humen1@gmail.com</a><div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-3499742969723191521?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-50474946031724088332009-02-24T17:41:00.001+08:002009-02-24T17:41:24.390+08:00rsync 选项说明-v, --verbose 详细模式输出<br>-q, --quiet 精简输出模式<br>-c, --checksum 打开校验开关,强制对文件传输进行校验<br>-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD<br>-r, --recursive 对子目录以递归模式处理<br>-R, --relative 使用相对路径信息<p>rsync foo/bar/foo.c remote:/tmp/<p>则在/tmp目录下创建foo.c文件,而如果使用-R参数:<p>rsync -R foo/bar/foo.c remote:/tmp/<p>则会创建文件/tmp/foo/bar/foo.c,也就是会保持完全路径信息。<p>-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。<br>--backup-dir 将备份文件(如~filename)存放在在目录下。<br>-suffix=SUFFIX 定义备份文件前缀<br>-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)<br>-l, --links 保留软链结<br>-L, --copy-links 想对待常规文件一样处理软链结<br>--copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结<br>--safe-links 忽略指向SRC路径目录树以外的链结<br>-H, --hard-links 保留硬链结<br>-p, --perms 保持文件权限<br>-o, --owner 保持文件属主信息<br>-g, --group 保持文件属组信息<br>-D, --devices 保持设备文件信息<br>-t, --times 保持文件时间信息<br>-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间<br>-n, --dry-run现实哪些文件将被传输<br>-W, --whole-file 拷贝文件,不进行增量检测<br>-x, --one-file-system 不要跨越文件系统边界<br>-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节<br>-e, --rsh=COMMAND 指定替代rsh的shell程序<br>--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息<br>-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件<br>--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件<br>--delete 删除那些DST中SRC没有的文件<br>--delete-excluded 同样删除接收端那些被该选项指定排除的文件<br>--delete-after 传输结束以后再删除<br>--ignore-errors 及时出现IO错误也进行删除<br>--max-delete=NUM 最多删除NUM个文件<br>--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输<br>--force 强制删除目录,即使不为空<br>--numeric-ids 不将数字的用户和组ID匹配为用户名和组名<br>--timeout=TIME IP超时时间,单位为秒<br>-I, --ignore-times 不跳过那些有同样的时间和长度的文件<br>--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间<br>--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0<br>-T --temp-dir=DIR 在DIR中创建临时文件<br>--compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份<br>-P 等同于 --partial<br>--progress 显示备份过程<br>-z, --compress 对备份的文件在传输时进行压缩处理<br>--exclude=PATTERN 指定排除不需要传输的文件模式<br>--include=PATTERN 指定不排除而需要传输的文件模式<br>--exclude-from=FILE 排除FILE中指定模式的文件<br>--include-from=FILE 不排除FILE指定模式匹配的文件<br>--version 打印版本信息<br>--address 绑定到特定的地址<br>--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件<br>--port=PORT 指定其他的rsync服务端口<br>--blocking-io 对远程shell使用阻塞IO<br>-stats 给出某些文件的传输状态<br>--progress 在传输时现实传输过程<br>--log-format=formAT 指定日志文件格式<br>--password-file=FILE 从FILE中得到密码<br>--bwlimit=KBPS 限制I/O带宽,KBytes per second<br>-h, --help 显示帮助信息<div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-5047494603172408833?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-20155941443693607392009-02-01T15:02:00.001+08:002009-02-01T15:02:17.640+08:00好文收藏理解Load Average做好压力测试<br><a href="http://java.chinaitlab.com/base/755242_2.html">http://java.chinaitlab.com/base/755242_2.html</a><div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-2015594144369360739?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-14067133798017258292009-01-20T12:19:00.001+08:002009-01-20T12:19:56.340+08:00一个好站<a href="http://www.chedong.com/tech/">http://www.chedong.com/tech/</a><div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-1406713379801725829?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-29439294113894516002009-01-20T10:34:00.000+08:002009-01-20T10:35:00.190+08:00apache2.2官方文档【在线】<a href="http://httpd.apache.org/docs/2.2/">http://httpd.apache.org/docs/2.2/</a><div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-2943929411389451600?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-44379633895512302812009-01-09T13:57:00.001+08:002009-01-09T13:57:18.353+08:00查看httpd进程数pstree|grep '\[httpd\]'<div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-4437963389551230281?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-28241170726102952592009-01-09T11:22:00.001+08:002009-01-09T11:22:54.874+08:00Apache Prefork和Worker模式的性能比较测试选择prefork还是worker可以在编译时使用�with-mpm=MPM参数指定,默认为prefork,<br>prefork<br>prefork采用预派生子进程方式,用单独的子进程来处理 不同的请求,进程之间彼此独立。在make编译和make<br>install安装后,使用httpd<br>-l来确定当前使用的MPM是prefork.c。查看httpd-mpm.conf配置文件,里面包含如下默认的配置段:<br><IfModule prefork.c><br>StartServers 5<br>MinSpareServers 5<br>MaxSpareServers 10<br>MaxClients 150<br>MaxRequestsPerChild 0<br></IfModule><br>prefork 控制进程在最初建立"StartServers"个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两<br>个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足MinSpareServers设置的值为止。这种模式<br>可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能。MaxSpareServers设置了最大的空闲进程数,如果空闲进程数大于这个<br>值,Apache会自动kill掉一些多余进程。这个值不要设得过大,但如果设的值比MinSpareServers小,Apache会自动把其调整为<br>MinSpareServers+1。如果站点负载较大,可考虑同时加大MinSpareServers和MaxSpareServers。<br>MaxRequestsPerChild设置的是每个子进程可处理的请求数。每个子进程在处理了"MaxRequestsPerChild"个请求后将自<br>动销毁。0意味着无限,即子进程永不销毁。虽然缺省设为0可以使每个子进程处理更多的请求,但如果设成非零值也有两点重要的好处:1、可防止意外的内存泄<br>漏。2、在服务器负载下降的时侯会自动减少子进程数。因此,可根据服务器的负载来调整这个值。MaxClients是这些指令中最为重要的一个,设定的是<br>Apache可以同时处理的请求,是对Apache性能影响最大的参数。其缺省值150是远远不够的,如果请求总数已达到这个值(可通过ps<br>-ef|grep http|wc<br>-l来确认),那么后面的请求就要排队,直到某个已处理请求完毕。这就是系统资源还剩下很多而HTTP访问却很慢的主要原因。虽然理论上这个值越大,可以<br>处理的请求就越多,但Apache默认的限制不能大于256。ServerLimit指令无须重编译Apache就可以加大MaxClients。<br><IfModule prefork.c><br>ServerLimit 10000<br>StartServers 5<br>MinSpareServers 5<br>MaxSpareServers 10<br>MaxClients 10000<br>MaxRequestsPerChild 0<br></IfModule><p>Worker<br>相 对于prefork,worker全新的支持多线程和多进程混合模型的MPM。由于使用线程来处理,所以可以处理相对海量的请求,而系统资源的开销要小于<br>基于进程的服务器。但是,worker也使用了多进程,每个进程又生成多个线程,以获得基于进程服务器的稳定性。在configure<br>�with-mpm=worker后,进行make编译、make<br>install安装。在缺省生成的httpd-mpm.conf中有以下默认配置段:<br><IfModule worker.c><br>StartServers 2<br>MaxClients 150<br>MinSpareThreads 25<br>MaxSpareThreads 75<br>ThreadsPerChild 25<br>MaxRequestsPerChild 0<br></IfModule><br>Worker 由主控制进程生成"StartServers"个子进程,每个子进程中包含固定的ThreadsPerChild线程数,各个线程独立地处理请求。同样,<br>为了不在请求到来时再生成线程,MinSpareThreads和MaxSpareThreads设置了最少和最多的空闲线程数;而MaxClients<br>设置了同时连入的clients最大总数。如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程。MinSpareThreads和<br>MaxSpareThreads的最大缺省值分别是75和250。这两个参数对Apache的性能影响并不大,可以按照实际情况相应调节。<br>ThreadsPerChild是worker<br>MPM中与性能相关最密切的指令。ThreadsPerChild的最大缺省值是64,如果负载较大,64也是不够的。这时要显式使用<br>ThreadLimit指令,它的最大缺省值是20000。Worker模式下所能同时处理的请求总数是由子进程总数乘以ThreadsPerChild<br>值决定的,应该大于等于MaxClients。如果负载很大,现有的子进程数不能满足时,控制进程会派生新的子进程。默认最大的子进程总数是16,加大时<br>也需要显式声明ServerLimit(最大值是20000)。需要注意的是,如果显式声明了ServerLimit,那么它乘以<br>ThreadsPerChild的值必须大于等于MaxClients,而且MaxClients必须是ThreadsPerChild的整数倍,否则<br>Apache将会自动调节到一个相应值。<br><IfModule worker.c><br>ServerLimit 25<br>ThreadLimit 200<br>StartServers 3<br>MaxClients 2000<br>MinSpareThreads 50<br>MaxSpareThreads 200<br>ThreadsPerChild 100<br>MaxRequestsPerChild 0<br></IfModule><br>下面是利用Apache自带的测试工具ab对Server进行测试的情况(设定请求的index页面为6bytes),cpu%为cpu占用率,mem为内存使用量(M为单位),RequestsPerSecond为每秒处理的请求数。<br>1、Prefor方式<br> (ServerLimit,StartServer,MinSpareServers,MaxSpareServers,MaxClients,MaxRequestPerChild)<br>-n/-c(ab参数) Cpu% Mem <br>Requestspersecond<br>(-,5,5,10,150,0)<br>100000/100 28.8 285 8434<br>100000/200 29.2 304 8032<br>100000/500 25.3 323 7348<br>100000/1000 24.4 330 5886<br>(10000,5,5,10,500,0)<br>100000/100 28.7 371 8345<br>100000/200 27.4 389 7929<br>100000/500 24.9 417 7229<br>100000/1000 23.4 437 6676<br>(10000,5,5,10,1000,0)<br>100000/100 28.8 408 8517<br>100000/200 27.0 422 8045<br>100000/500 24.2 455 7236<br>100000/1000 22.5 470 6570<br>(10000,5,5,10,1500,0)<br>100000/100 29.6 330 8407<br>100000/200 28.1 349 8014<br>100000/500 26.4 380 7290<br>100000/1000 24.0 400 6686<br>2、Worker方式<br>(ServerLimt,Threadlimt,Startservers,MaxClients,MinspareThread,MaxspareThread,ThreadperChild,MaxRequestPerChild)<p>-n/-c(ab参数) cpu% mem RequestsperSecond<br>(50,500,5,10000,50,200,200,0)<br>100000/100 18.6 188 6020<br>100000/200 20.1 195 5892<br>100000/500 19.8 209 5708<br>100000/1000 22.2 218 6081<br>(100,500,5,10000,50,200,100,0)<br>100000/100 24.5 240 6919<br>100000/200 23.6 247 6798<br>100000/500 24.6 254 6827<br>100000/1000 22.3 271 6114<br>(200,500,5,10000,50,200,50,0)<br>100000/100 27.3 301 7781<br>100000/200 27.4 307 7789<br>100000/500 26.0 320 7141<br>100000/1000 21.8 344 6110<br>相对来说,prefork方式速度要稍高于worker,然而它需要的cpu和memory资源也稍多于woker。<div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-2824117072610295259?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-78921732023600817732009-01-09T09:56:00.001+08:002009-01-09T09:56:26.351+08:00海底世界快来玩玩我开发的小游戏吧,海底世界<br><a href="http://www.club-fish.com/play&leagueId=100-122-00000012.html">http://www.club-fish.com/play&leagueId=100-122-00000012.html</a><div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-7892173202360081773?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-90947981192605047612008-12-24T10:52:00.001+08:002008-12-24T10:52:44.377+08:00测试工具排行2006<a href="http://sd.csdn.net/subject/testtool.htm">http://sd.csdn.net/subject/testtool.htm</a><p>-- <br><a href="http://xn---www-z94f82po8e3yfh56az8jiyrf48aryn1pbd54lrhq.qoolu.com">上海酷噜网络科技有限公司-www.qoolu.com</a><br>MSN & Email >> <a href="mailto:humen1@gmail.com">humen1@gmail.com</a><div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-9094798119260504761?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-44958032111500790182008-12-19T09:41:00.000+08:002008-12-19T09:42:00.211+08:00PHP-GTK 介绍及其应用1. PHP-GTK介绍<p>1.1 PHP-GTK<br>PHP-GTK是PHP的延伸模组,它可以让程式设计师写出在客户端执行的、且独立的GUI的程式。这个模组不允许在浏览器上显视GTK+的程式,它一开始就是开发来写独立的GUI程式的。<p>1.2 GTK<br>GTK原本是为GIMP,一个GUI的影像处理软体而开发的。GTK+是GIMP的套装工具。GTK+从这里开始发展,直到现在已经成为Gnome的中心(Gnome是一个桌面环境)。後来GTK+也已经被推广到BeOS和Win32,使得它成为PHP延伸模组的最佳选择,维持PHP可以跨平台并可以用PHP为Linux,BeOS,Windows等平台开发视窗介面的程式。<p>2. PHP-GTK概念<p>2.1 前言<br>接下来就要教各位一点点比较观念性的东西罗┅因为这章的概念都是非常重要的,所以就算不懂,也还是要慢慢的看懂它,不然┅以後就┅。还有,接下来的内容不建议没有程式设计经验的读者阅读,因为有很多的观念很容易会搞不清楚。还有,接下来该用英文的部分我都会用英文,这样大家在看国外文件的时候才不会不知所措,加油吧!!如果对本章有任何不懂之处,请自行查阅<br>PHP-GTK Manual:<a href="http://gtk.php.net/manual/en/">http://gtk.php.net/manual/en/</a><p>2.2 Widget(s)<br>Widget是一个GUI程式中基本的functions和forms。最常用的几个Widget是:label、button、window、frame和text<br>box。所有的widget都是来自於一个抽象的基本class─GtkWidget。每个widget都是一个class<p>一个Widget一生大概都有五个时期:<br>1. 建立(Creation):宣告一个物件(declaring an object)<br>2. 放置(Placement):将它加入一个容器中(adding it to a container)<br>3. 信号连接(Signal Connection):接收信号以及进行动作(the action it will perform)<br>4. 显示(Display):它是否是可见的(whether it is viewable or not)<br>5. 删除(Destruction):关闭程式(closing of a program)<p>2.3 Container(s)<br>Container是一个可以包含其他widget的widget。大部分的widget都是container,例如:GtkWindow、GtkTable和GtkBox。除了这点之外,container跟其他的widget没两样,也可以被放到其他container去。而所有的container都是来自於一个class─GtkContainer,本身来自於GtkWidget的class。所以container也是widget的一种。<p>2.4 Signal(s)<br>当程式设计师在程式中做了一个动作时,程式需要有一个动作来回应使用者的动作。Signals使程式可以知道使用者做了动作并可以触发适合的回应。<p>例如,当使用者按了一个可以开新视窗的按钮(GtkButton),程式认出这个请求,於是就开了一个新的视窗。这件事可以经由signal来做到。当按钮按下去之後,会使widget发出一个signal,接着再由该signal触发callbacks,产生一个新的视窗(GtkWindow)。<p>2.5 Callback(s)<br>Callback就是当signal送出之後,被signal唤起的function。Callback会执行function传回一个值或是做一个动作。Callback就是signal的handler<br>funciton。它可以是该signal的预设handler或着是程式设计师定义的function。要建立一个callback,就必须把function<br>connect 到 signal。<p>2.6 Signal Inheritance(继承)<br>和methods一样,signals可以被物件继承。一个widget可以送出任何它的parent widget可以送出的还有它自己特有的signal。<p>2.7 Connecting Signals<br>你必须为PHP-GTK指定一个callback<br>function当signal送出时来对signal做回应。把一个signal连接到一个function可以用connect()<br>这个object 方法达成。<p>如下:<p><?php<br>//建立一个GtkWindow<br>$window = &new GtkWindow();<br>//将"destroy" signal用connect() 方法连接到shutdown函式<br>$window->connect("destroy", "shutdown");<br>//建立一个GtkButton,按钮文字为"按我"<br>$button = &new GtkButton("按我");<br>$button->connect("clicked", "you_clicked");<br>//把GtkButton放到是container的GtkWindow中<br>$window->add($button);<br>//显示$window以及它的所有child widget<br>$window->show_all();<br>//进入程式主回圈(即程式启动之意)<br>gtk::main();<br>?><p><br>执行它的话,就会出现一个视窗,里面有一个写着"按我"的按钮,按下按钮程式就会执行you_clicked函式。在这个程式中,$window物件的"destroy"<br>signal是在使用者按下视窗右上角的"X"时会送出的;而$button物件的"clicked"<br>signal是在使用者按下该按钮的时候会送出的。最後那一行的gtk::main()<br>是一定要执行的,这样才能告诉电脑要开始执行程式,既然有开始执行,那就一定有停止吧? 没错,用gtk::main_quit()<br>就可以停止程式了。<p>看完了以上的范例,有些读者可能会有疑问「如果我想执行送出signal的widget之外的widget的method怎么办?」,这时候,就要用另一个method了<br>a connect_object(),它可以跨物件呼叫方法或是传递其他物件做为function的叁数。跨物件呼叫方法如下:<p>$window->connect_object("destroy", array("gtk","main_quit"))<p><br>如此,在$window物件的"destroy" signal送出的时候就会唤起gtk::main_quit()这个方法,程式就会终指执行。<p>在介绍连接方法的最後,再提一下connect() 和 connect_object() 的自订增加要传给callback function的叁数的办法。见例子:<br><?php<br>$parameter="新超人";<br>$button1 = &new GtkButton("测试");<br>//将"clicked" signal连接到who_are_you函式,附加叁数$parameter<br>$button1->connect("clicked","who_are_you",$parameter);<br>$button2 = &new GtkButton("测试二");<br>//将"clicked" signal连接到kill_the_button1函式,附加叁数$button1<br>$button2->connect_object("clicked","kill_the_button1",$button1);<p>function who_are_you($widget,$parameter){<br>echo $parameter;<br>}<p>function kill_the_button($button){<br>$button->destroy();<br>}<br>?><p><br>注意那两个function,who_are_you有两个叁数对吧? 第一个是做什么用的呢?为什么它会自动出现??<br>因为,每个signal的callback function都会因为signal的不同而加上一些内定一定会传入callback<br>function的叁数,而基本上所有的signal都至少会传给callback<br>function一个叁数a产生该signal的物件。所以who_are_you的第一个叁数就是$button1,而第二个就是$parameter,也就是新超人。那kill_the_button函式就不一样罗~<br>因为connect_object()函式会呼略原本signal的callback<br>function的预设叁数,所以kill_the_button就只有附加在connect_object最後的$button1叁数了,如此,kill_the_button就可以呼叫$button1的方法或是取得它的属性,这里呼叫了$button1的destroy方法,於是$button1就会被消灭。<p>2.8 Event(s)<br>Event是signal的一种,但是它的用途还有功能都非常强大。就signal来说,signal这种东西都是内建在widget上的,所以,例如GtkWindow没有"clicked"signal,那么在不用event<br>signal的情况下,GtkWindow是决对不可能送出clicked之类的signal的。那如果用了event signal呢?<br>Event signal是可以允许被加到任何的widget上的,所以就算这个widget本来没有发出"clicked"signal的功能,你也可以用add_events()<br>来为它加上按了它之後event signal会做什么样的反应。而event<br>signal中包含的资讯比较多,比如说当你在使用"key-press-event"这个event<br>signal的时候,同时也会记录到你按下的是什么按键,於是通常event signal的callback<br>function格式内定会有两个叁数,第一个依然是送出signal的widget,而第二个就是$event,这个$event是一个class,里面的属性和方法会因为送过来的event<br>signal种类而不同。就"key-press-event"传回的$event<br>class来说,里面有一个属性是keyval,内容就是使用者按的是哪一个键。这些对於一个程式设计师来说常常是很有用的资讯。所以event的重要性是不可忽视的,就算刚开始会有点不懂,也要慢慢的融入才行。这一节也非常重要。<p>3. 安装PHP-GTK<p>3.1 在Windows系统下安装<br>首先要从<a href="http://gtk.php.net/download.php">http://gtk.php.net/download.php</a>下载...HP-GTK的windows binary档案(本文撰写时为0.5.1版)。<p>接着来看看PHP-GTK 0.5.1 binary档的内容:<br>\php4 → php 和 php-gtk binary 档案<br>\winnt → 预设的php.ini档案<br>\winnt\system32 → gtk binaries used by extension<br>\test → 几个测试用的档案<br>\README.txt → 安装说明档<p>开始安装:<br>1. 复制 \php4 的内容到你的php安装目录下(例C:\php)。<br>2. 复制 \winnt 的内容到你的winnt资料夹。在Windows<br>NT或Windows2000上是C:\winnt,在Window95、98、xp上是C:\windows。如果该资料夹里已经有<br>php.ini,那就不用做这个动作。<br>3. 复制 \winnt\system32 的内容到你的winnt\system32资料夹。在Windows<br>NT或Windows2000上是C:\winnt\system32,在Window95、98、xp上是C:\windows\system32。<br>4. 复制 \test 的内容到你想要执行你的script的地方(此步骤非必要)。<p>如何执行PHP-GTK程式:<br>PHP-GTK程式可以在「开始」-「执行」下输入指令(或是建立捷径)来启动,如:C:\php\php -q<br>c:\php\test\gtk.php ## 表示不送印出 HTTP Header,但一直使用这个视窗,直到关闭程式。<br>C:\php\php -q -c php.ini c:\gtk.php ## 同上,但执行指定的php.ini设定。<br>C:\php\php C:\php\test\gtk.php ## 表示会送印出 HTTP Header,但一直使<br>用这个视窗,直到关闭程序<br>C:\php\php_win C:\php\test\gtk.php ## 表示不使用视窗,执行後独立一个执行程式,他是使用 php<br>-q模式,但是只要output出任何字元,例如错误讯息,就会停止执行。<p>3.2 在UNIX系统下安装<br>Debian的使用者可以在 <a href="http://www.debian.org">http://www.debian.org</a> 下载PHP-GTK的binary档。系统需求须已安装下列package:<p>PHP 4.1.0 或之後的版本,必须是编为CGI binary(command-line) 版本,包含所有的header<br>files和devlement scripts。<p>PHP-GTK支援GTK+ v1.2而需要安装1.2.6以上版本的GTK+。GTK+<br>v2.0还未被支援,必须等到它开发完成并且普及了之後才会被支援。你可以从下面的网址取得GTK+<br>v1.2.X的最新版本:<a href="ftp://ftp.gtk.org/pub/gtk/v1.2/">ftp://ftp.gtk.org/pub/gtk/v1.2/</a><p>在将取得的档案解压缩或是由CVS中check out出来之後,切换到该目录下,开始进行安装(打指令罗~):<p>取得CVS版本,执行<br>cvs -d server:cvsread@cvs.php.net:/repository co php-gtk<br>或下载最新版本<br><a href="http://gtk.php.net/download.php">http://gtk.php.net/download.php</a><p>1. ./buildconf<br>2. ./configure (想要加装extensions的话请输任./configure --help看说明)<br>3. make(如果看到"Could not write┅",只是代表该GTK+ object还没被支援,不算是什么错误讯息)<br>4. make install<p>执行看看test/资料夹中的范例scripts来测试,特别是gtk.php,这些都是展示如何使用的好例子。<p>4. 第一支程式<p>4.1 前言<br>本章会教导各位一些常用的GtkClass(widget),还有运用这些来做出你的第一支PHP-GTK程式,如果概念那章不是很熟的话,这章可以给你一个练习的机会喔!<br>如果对本章的内容有不懂或是想要深入了解其他的widget,可以到<a href="http://gtk.php.net/manual/en/">http://gtk.php.net/manual/en/</a><br>看手册,手册里面有不少范例程式。<p>4.2 会用到的widgets<br>在开始写程式之前,先来对等一下会用到的widget class们做一个overview。<p>GtkWindow()<br>GtkWindow()建立一个视窗,里面有很多方法可以使用,如:set_title,set_name,<br>connect,set_border_width等┅。<p>GtkFrame()<br>GtkFrame()纯粹建立一个好Border,你可以设定它的label name,alignment,<br>shadow(用英文,读Manual的时候会比较方便)。<p>GtkVBox()<br>GtkVBox()建立一个直立的container来放入widgets。<p>GtkLabel()<br>GtkLabel()可以建立一个label,内容文字可以建立时设定也可以建立後用方法来设定,如果没有设定内容文字,将会建立一个空的label(这是废话吗┅?)。<p>GtkHSeparator()<br>GtkHseparator()建立一个水平线。<p>GtkEntry()<br>GtkEntry()建立一个textbox供使用者输入资讯。<p>GtkHButtonBox()<br>GtkHButtonBox()建立一个以水平方式排列Button的container。<p>GktBtton()<br>GtkButton()或许可以说是GUI程式中最常用的widget了,它建立一个可以让使用者按的按钮。<p>4.3 开始<p>If(!class_exist("gtk"))<br>{<br>dl("php_gtk.".(strstr(PHP_OS,"WIN") ? "dll" : "so"));<br>}<p><br>这段程式码会判断PHP-GTK延伸模组是否已启动,如果没有,它就会读取适当的档案。在上面的范例中,是靠判断执行的作业系统是Windows还是其它来判断要载入<a href="http://php_gtk.xn--dllphp_gtk-j07uf299a.so">php_gtk.dll还是php_gtk.so</a>。<p><br>Function delete_event()<br>{<br>return false;<br>}<p><br>这里建立了一个名为delete_event的function,这个function是等会儿delete-event<br>signal发出时的callback function。内容传回false会告诉PHP-GTK用预设的signal<br>handler来处理,而预设的handler会关闭视窗(同时会呼叫该视窗的destroy()<br>函式),在这里,它会关闭程式(因为这个范例程式只有一个主视窗,一旦关闭就会关闭程式)。<p>Function destroy()<br>{<br>Gtk::main_quit();<br>}<p><br>这里建立了一个函式,destroy()。在这个程式中,这个函式是很重要的,因为我们在关闭程式的时候会连接到它。之前说过,Gtk::main_quit()会关闭程式,如果我们在这个程式中没有定义这个function或是这个function里面没有Gtk::main_quit()这行,那么这个程式就不会关闭了。以上一段程式码说明里提到的delete-event来说,return<br>false之後预设会执行关闭视窗的动作,还会呼叫destroy()函式,如果这里没有定义或是没有Gtk::main_quit()这段的话,主视窗的确会关闭,可是程式并不会结束,因为主程式回圈aGtk::main()还在跑。<p><?php<br>$window = &new GtkWindow();<br>//设定名字以辨别各个视窗<br>$window->set_name('main window');<br>//设定视窗的标题<br>$window->set_title('对PHP-GTK的介绍');<br>//设定视窗的大小<br>$window->set_usize(160, 120);<br>//呼叫destroy()函式来结束程式<br>$window->connect('destroy', 'destroy');<br>//呼叫delete_event()函式来关闭视窗<br>$window->connect('delete-event', 'delete_event');<br>//设定视窗的边框宽度<br>$window->set_border_width(10);<br>//设定视窗的位置<br>$window->set_position(GTK_WIN_POS_CENTER);<br>//显示视窗和所有child widget (不显示就看不到)<br>//最後这两行一定要放在程式码的最後,否则什么都看不到<br>$window->show_all();<br>Gtk::main();<br>?><p><br>执行程式可以看到如下的图:<p><p><p>//建立一个GtkFrame<br>$frame = &new GtkFrame('经过简易修改的程式');<br>//把GtkFrame放到GtkWindow里<br>$window->add($frame);<br>//最下面两行不要动<p><br>结果如下图:<p><p><p>下面这段建立一个GtkVBox作为container,并把GtkEntry、GtkHSeperator、GtkLabel和GtkButtonBox都pack进去,所谓pack,是GtkBox底下的container们特别加入的放入widget的方法,就类似於add(),而pack用的方法一般是pack_start()和pack_end(),比add()好的地方是可以控制将widget增加进去之後widget的位置(不过只要是container就会有add()方法),欲查询详细资料请至<br><a href="http://gtk.php.net/manual/en">http://gtk.php.net/manual/en</a>。<p><br>//建立一个GtkVBox,为常用的container<br>$box1 = &new GtkVBox();<br>//把GtkVBox放到GtkFrame里面<br>$frame->add($box1);<br>//建立一个GtkLabel并将它pack到GtkVBox里<br>$label = &new GtkLabel();<br>$box1->pack_start($label);<br>//建立一个GtkHSeparator并将它pack到GtkVBox里<br>$separator = &new GtkHSeparator();<br>$box1->pack_start($separator);<br>//建立一个GtkEntry并将它pack到GtkVBox里<br>$entry = &new GtkEntry();<br>$box1->pack_start($entry);<br>//建立一个GtkButtonBox并将它add到GtkVBox里<br>//因为GtkButtonBox也是一个无形的container,位置不重要,所以用add()<br>$box2 = &new GtkHButtonBox();<br>$box1->add($box2);<p><p>执行如下图:<p><p><p>最後这段程式码会建立两个GtkButton并pack到GtkButtonBox里去,还有为两个按钮加上连接,使它们起作用,并建立一个函式,只要按下GtkButton就会将GtkLabel的内容换成GtkEntry中的文字。<p>$button = &new GtkButton('显示输入的字');<br>//连接"clicked" signal到set_name()函式,附加$label和$entry两个widget<br>$button->connect_object('clicked','set_name',$label,$entry);<br>$box2->pack_start($button);<br>$button = &new GtkButton('离开程式');<br>//连接"clicked" signal到destroy()函式,将会关闭程式<br>$button->connect('clicked','destroy');<br>$box2->pack_start($button);<p>function set_name($label,$entry)<br>{<br>//用GtkEntry的get_text()方法从取得文字方块内容<br>$gettext=$entry->get_text();<br>//用GtkLabel的set_text()方法设定新的文字<br>$label->set_text($gettext);<br>}<br>//最後再提一下那两行┅.<br>$window->show_all();<br>Gtk::main();<p><br>?到??,整?程式就算是完成了,?看看?行的?果吧~<p><p><p><br>5. 其它<p>5.1 进一步学习<br>如果在结束了上面的课程之后你还想要更了解PHP-GTK,或是对于本文的内容有任何<br>不明白的地方,这里提供你几个地方可以查询资料:<p>PHP-GTK官方网站(En): <a href="http://gtk.php.net">http://gtk.php.net</a><br>GTK官方网站(En): <a href="http://www.gtk.org">http://www.gtk.org</a><br>PHP-GTK官方网站上的Manual(En): <a href="http://gtk.php.net/manual/en">http://gtk.php.net/manual/en</a><br>TIM官方网站(zh-Tw): <a href="http://tim.jerry.com.tw">http://tim.jerry.com.tw</a><p>5.2 另一个范例<br>这里有一个笔者写的猜数字游戏,算是比较进阶的范例,可以抓回去研究看看。<br><a href="http://pc035860.infor.org/download/GuessNumber.zip">http://pc035860.infor.org/download/GuessNumber.zip</a><p>5.3 参考数据<br>本文主要是参考PHP-GTK官方Manual和Zend网站上的Tutorial而编撰成的:<br><a href="http://gtk.php.net/manual/en">http://gtk.php.net/manual/en</a><br><a href="http://www.zend.com/zend/tut/tutorial-silva.php">http://www.zend.com/zend/tut/tutorial-silva.php</a><br>5.4 关于作者<br>无敌铁金刚(自称),目前(2002/08/18)是台北市立建国中学一升二年级的学生,在<br>学校参加了信息社,这篇文章就是放在社刊上的。<div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-4495803211150079018?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-5140350186258361832008-12-19T09:19:00.001+08:002008-12-19T09:19:46.777+08:00php gtk<a href="http://www.phpgtk.net/index.php">http://www.phpgtk.net/index.php</a><p>-- <br><a href="http://xn---www-z94f82po8e3yfh56az8jiyrf48aryn1pbd54lrhq.qoolu.com">上海酷噜网络科技有限公司-www.qoolu.com</a><br>MSN & Email >> <a href="mailto:humen1@gmail.com">humen1@gmail.com</a><div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-514035018625836183?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-35710904762342922432008-12-18T14:03:00.001+08:002008-12-18T14:03:54.094+08:00vi使用手册(zt)进入vi的命令<br>vi filename :打开或新建文件,并将光标置于第一行首<br>vi +n filename :打开文件,并将光标置于第n行首<br>vi + filename :打开文件,并将光标置于最后一行首<br>vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处<br>vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename<br>vi filename....filename :打开多个文件,依次编辑<p>移动光标类命令<br>h :光标左移一个字符<br>l :光标右移一个字符<br>space:光标右移一个字符<br>Backspace:光标左移一个字符<br>k或Ctrl+p:光标上移一行<br>j或Ctrl+n :光标下移一行<br>Enter :光标下移一行<br>w或W :光标右移一个字至字首<br>b或B :光标左移一个字至字首<br>e或E :光标右移一个字j至字尾<br>) :光标移至句尾<br>( :光标移至句首<br>}:光标移至段落开头<br>{:光标移至段落结尾<br>nG:光标移至第n行首<br>n+:光标下移n行<br>n-:光标上移n行<br>n$:光标移至第n行尾<br>H :光标移至屏幕顶行<br>M :光标移至屏幕中间行<br>L :光标移至屏幕最后行<br>0:(注意是数字零)光标移至当前行首<br>$:光标移至当前行尾<p>屏幕翻滚类命令<br>Ctrl+u:向文件首翻半屏<br>Ctrl+d:向文件尾翻半屏<br>Ctrl+f:向文件尾翻一屏<br>Ctrl+b;向文件首翻一屏<br>nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。<p>插入文本类命令<br>i :在光标前<br>I :在当前行首<br>a:光标后<br>A:在当前行尾<br>o:在当前行之下新开一行<br>O:在当前行之上新开一行<br>r:替换当前字符<br>R:替换当前字符及其后的字符,直至按ESC键<br>s:从当前光标位置处开始,以输入的文本替代指定数目的字符<br>S:删除指定数目的行,并以所输入文本代替之<br>ncw或nCW:修改指定数目的字<br>nCC:修改指定数目的行<p>删除命令<br>ndw或ndW:删除光标处开始及其后的n-1个字<br>do:删至行首<br>d$:删至行尾<br>ndd:删除当前行及其后n-1行<br>x或X:删除一个字符,x删除光标后的,而X删除光标前的<br>Ctrl+u:删除输入方式下所输入的文本<p>搜索及替换命令 :<br>/pattern:从光标开始处向文件尾搜索pattern<br>?pattern:从光标开始处向文件首搜索pattern<br>n:在同一方向重复上一次搜索命令<br>N:在反方向上重复上一次搜索命令<br>:s/p1/p2/g:将当前行中所有p1均用p2替代<br>:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代<br>:g/p1/s//p2/g:将文件中所有p1均用p2替换<p>选项设置<br>all:列出所有选项设置情况<br>term:设置终端类型<br>ignorance:在搜索中忽略大小写<br>list:显示制表位(Ctrl+I)和行尾标志($)<br>number:显示行号<br>report:显示由面向行的命令修改过的数目<br>terse:显示简短的警告信息<br>warn:在转到别的文件时若没保存当前文件则显示NO write信息<br>nomagic:允许在搜索模式中,使用前面不带"\"的特殊字符<br>nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始<br>mesg:允许vi显示其他用户用write写到自己终端上的信息<p>最后行方式命令<br>:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下<br>:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下<br>:n1,n2 d :将n1行到n2行之间的内容删除<br>:w :保存当前文件<br>:e filename:打开文件filename进行编辑<br>:x:保存当前文件并退出<br>:q:退出vi<br>:q!:不保存文件并退出vi<br>:!command:执行shell命令command<br>:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指<br>定n1,n2,则表示将整个文件内容作为command的输入<br>:r!command:将命令command的输出结果放到当前行 。<div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-3571090476234292243?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0tag:blogger.com,1999:blog-7269874978253342363.post-84226387441279912802008-12-18T13:56:00.001+08:002008-12-18T13:56:58.429+08:00WGet使用指南wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.<p>所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。<p>wget可以跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构。这又常被称作"递归下载"。在递归下载的时候,wget遵循Robot<br>Exclusion标准(/robots.txt). wget可以在下载的同时,将链接转换成指向本地文件,以方便离线浏览。<p>wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性.如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完<br>毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。<p>wget的常见用法<br>wget的使用格式<p>Usage: wget [OPTION]... [URL]...<br>用wget做站点镜像:<br>wget -r -p -np -k <a href="http://dsec.pku.edu.cn/~usr_name/">http://dsec.pku.edu.cn/~usr_name/</a><br># 或者<br>wget -m <a href="http://www.tldp.org/LDP/abs/html/">http://www.tldp.org/LDP/abs/html/</a><br>在不稳定的网络上下载一个部分下载的文件,以及在空闲时段下载<br>wget -t 0 -w 31 -c <a href="http://dsec.pku.edu.cn/BBC.avi">http://dsec.pku.edu.cn/BBC.avi</a> -o down.log &<br># 或者从filelist读入要下载的文件列表<br>wget -t 0 -w 31 -c -B <a href="ftp://dsec.pku.edu.cn/linuxsoft">ftp://dsec.pku.edu.cn/linuxsoft</a> -i filelist.txt<br>-o down.log &<br>上面的代码还可以用来在网络比较空闲的时段进行下载。我的用法是:在mozilla中将不方便当时下载的URL链接拷贝到内存中然后粘贴到文件filelist.txt中,在晚上要出去系统前执行上面代码的第二条。<p>使用代理下载<br>wget -Y on -p -k <a href="https://sourceforge.net/projects/wvware/">https://sourceforge.net/projects/wvware/</a><br>代理可以在环境变量或wgetrc文件中设定<p># 在环境变量中设定代理<br>export PROXY=<a href="http://211.90.168.94:8080/">http://211.90.168.94:8080/</a><br># 在~/.wgetrc中设定代理<br>http_proxy = <a href="http://proxy.yoyodyne.com:18023/">http://proxy.yoyodyne.com:18023/</a><br>ftp_proxy = <a href="http://proxy.yoyodyne.com:18023/">http://proxy.yoyodyne.com:18023/</a><br>wget各种选项分类列表<br>启动<br>-V, --version 显示wget的版本后退出<br>-h, --help 打印语法帮助<br>-b, --background 启动后转入后台执行<br>-e, --execute=COMMAND 执行`.wgetrc'格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc<br>记录和输入文件<br>-o, --output-file=FILE 把记录写到FILE文件中<br>-a, --append-output=FILE 把记录追加到FILE文件中<br>-d, --debug 打印调试输出<br>-q, --quiet 安静模式(没有输出)<br>-v, --verbose 冗长模式(这是缺省设置)<br>-nv, --non-verbose 关掉冗长模式,但不是安静模式<br>-i, --input-file=FILE 下载在FILE文件中出现的URLs<br>-F, --force-html 把输入文件当作HTML格式文件对待<br>-B, --base=URL 将URL作为在-F -i参数指定的文件中出现的相对链接的前缀<br>--sslcertfile=FILE 可选客户端证书<br>--sslcertkey=KEYFILE 可选客户端证书的KEYFILE<br>--egd-file=FILE 指定EGD socket的文件名<br>下载<br>--bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)<br>-t, --tries=NUMBER 设定最大尝试链接次数(0 表示无限制).<br>-O --output-document=FILE 把文档写到FILE文件中<br>-nc, --no-clobber 不要覆盖存在的文件或使用.#前缀<br>-c, --continue 接着下载没下载完的文件<br>--progress=TYPE 设定进程条标记<br>-N, --timestamping 不要重新下载文件除非比本地文件新<br>-S, --server-response 打印服务器的回应<br>--spider 不下载任何东西<br>-T, --timeout=SECONDS 设定响应超时的秒数<br>-w, --wait=SECONDS 两次尝试之间间隔SECONDS秒<br>--waitretry=SECONDS 在重新链接之间等待1...SECONDS秒<br>--random-wait 在下载之间等待0...2*WAIT秒<br>-Y, --proxy=on/off 打开或关闭代理<br>-Q, --quota=NUMBER 设置下载的容量限制<br>--limit-rate=RATE 限定下载输率<br>目录<br>-nd --no-directories 不创建目录<br>-x, --force-directories 强制创建目录<br>-nH, --no-host-directories 不创建主机目录<br>-P, --directory-prefix=PREFIX 将文件保存到目录 PREFIX/...<br>--cut-dirs=NUMBER 忽略 NUMBER层远程目录<br>HTTP 选项<br>--http-user=USER 设定HTTP用户名为 USER.<br>--http-passwd=PASS 设定http密码为 PASS.<br>-C, --cache=on/off 允许/不允许服务器端的数据缓存 (一般情况下允许).<br>-E, --html-extension 将所有text/html文档以.html扩展名保存<br>--ignore-length 忽略 `Content-Length'头域<br>--header=STRING 在headers中插入字符串 STRING<br>--proxy-user=USER 设定代理的用户名为 USER<br>--proxy-passwd=PASS 设定代理的密码为 PASS<br>--referer=URL 在HTTP请求中包含 `Referer: URL'头<br>-s, --save-headers 保存HTTP头到文件<br>-U, --user-agent=AGENT 设定代理的名称为 AGENT而不是 Wget/VERSION.<br>--no-http-keep-alive 关闭 HTTP活动链接 (永远链接).<br>--cookies=off 不使用 cookies.<br>--load-cookies=FILE 在开始会话前从文件 FILE中加载cookie<br>--save-cookies=FILE 在会话结束后将 cookies保存到 FILE文件中<br>FTP 选项<br>-nr, --dont-remove-listing 不移走 `.listing'文件<br>-g, --glob=on/off 打开或关闭文件名的 globbing机制<br>--passive-ftp 使用被动传输模式 (缺省值).<br>--active-ftp 使用主动传输模式<br>--retr-symlinks 在递归的时候,将链接指向文件(而不是目录)<br>递归下载<br>-r, --recursive 递归下载--慎用!<br>-l, --level=NUMBER 最大递归深度 (inf 或 0 代表无穷).<br>--delete-after 在现在完毕后局部删除文件<br>-k, --convert-links 转换非相对链接为相对链接<br>-K, --backup-converted 在转换文件X之前,将之备份为 X.orig<br>-m, --mirror 等价于 -r -N -l inf -nr.<br>-p, --page-requisites 下载显示HTML文件的所有图片<br>递归下载中的包含和不包含(accept/reject)<br>-A, --accept=LIST 分号分隔的被接受扩展名的列表<br>-R, --reject=LIST 分号分隔的不被接受的扩展名的列表<br>-D, --domains=LIST 分号分隔的被接受域的列表<br>--exclude-domains=LIST 分号分隔的不被接受的域的列表<br>--follow-ftp 跟踪HTML文档中的FTP链接<br>--follow-tags=LIST 分号分隔的被跟踪的HTML标签的列表<br>-G, --ignore-tags=LIST 分号分隔的被忽略的HTML标签的列表<br>-H, --span-hosts 当递归时转到外部主机<br>-L, --relative 仅仅跟踪相对链接<br>-I, --include-directories=LIST 允许目录的列表<br>-X, --exclude-directories=LIST 不被包含目录的列表<br>-np, --no-parent 不要追溯到父目录<div class="blogger-post-footer">humen1 Tech<img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7269874978253342363-8422638744127991280?l=www.humen1.com'/></div>humen1http://www.blogger.com/profile/00088784166653270376noreply@blogger.com0