2010-01-09 10 views
17

हमने सभी को स्टैक ओवरफ्लो पर कई प्रश्न देखा है जो इस विचार पर स्थापित हैं कि PHP जावास्क्रिप्ट की तरह काम करता है। जहां व्यक्ति स्पष्ट रूप से समझ में नहीं आता है कि PHP प्रीप्रोसेसर है और पृष्ठ को भेजने से पहले ही काम करता है।क्यों वेब स्क्रिप्ट वेब निर्देशिका में काम नहीं कर रहा है?

इसका एक स्पष्ट उदाहरण निम्न कोड में है, जहां runCommand() उपयोगकर्ता द्वारा बटन दबाए जाने पर नहीं चलाया जाएगा।

<a href="<?php runCommand(); ?>">Click Me!</a> 
जावास्क्रिप्ट

<a href="javascript:runCommand();">Click Me!</a> 

में

यह होगा के रूप में मैं यह है कि नए लोगों से है कि बस एहसास नहीं है 'कैसे' पीएचपी काम करता है से हैं जैसे कई सवाल देखा है।

मेरा प्रश्न है: एक महान संसाधन कहां है जो बताता है कि PHP कैसे काम करता है?

मैं लोगों को ऐसे पृष्ठ पर रीडायरेक्ट करने में सक्षम होना चाहता हूं जो उन्हें सही ट्रैक पर जा सके और जानें कि प्रीप्रोसेसर का अर्थ क्या है।

आप एक जगह का वर्णन करता है के बारे में पता नहीं है (यह भी मुझे आलसी होने के लिए और एक विवरण हर बार यह ऊपर आता है लिखने की आवश्यकता नहीं है, लेकिन किसी को भी नहीं बताया अनुमति देता है!)

यह अच्छी तरह से, अपनी खुद की व्याख्या प्रदान करने के लिए स्वतंत्र महसूस करें।

के रूप में कार्ल स्मोट्रिक बताते हैं, PHP का एक हिस्सा है जिसका उपयोग ब्राउज़र के बाहर किया जा सकता है। लेकिन मैं मुख्य रूप से अपाचे वृद्धि में बात कर रहा हूं जहां कोई उपयोगकर्ता वेब पेज का अनुरोध करता है, और आमतौर पर कुछ एचटीएमएल में कुछ पाने की अपेक्षा करता है।

+12

भेद उस से सरल है। PHP सर्वर पक्ष निष्पादित किया गया है, जावास्क्रिप्ट क्लाइंट पक्ष निष्पादित किया गया है। –

+0

PHP या प्रीप्रोसेसर? गुगलिंग प्रीप्रोसेसर या PHP आपको जो चाहिए वह आपको देगा। –

+0

@ क्रिस्टोफर: हाँ लेकिन अक्सर शुरुआती उस बिंदु को नहीं प्राप्त करते हैं। –

उत्तर

28

विकिपीडिया हमेशा जानकारी का एक बड़ा संसाधन है।मेरा सुझाव है:

Server-side scripting

बनाम

Client-side scripting


और विकिपीडिया को has pictures:

enter image description here

+0

उसमें जोड़ें (यह पुराना स्कूल 'CGI' दिन है, लेकिन कुछ के लिए एक अच्छा प्राथमिक हो सकता है): http://www.garshol.priv.no/download/text/http-tut।एचटीएमएल – micahwittman

+0

+1 बस एक साधारण प्रश्न के उत्तर के लिए +1;) – Strae

+1

यह भी महत्वपूर्ण है कि डीओएम में जेएस घटना आधारित है, बनाम PHP की बैच शैली। यह भी उतना ही महत्वपूर्ण है कि जेएस उदाहरण कैसे काम करता है, और मुझे आश्चर्य है कि यहां किसी और ने टिप्पणी नहीं की है। – JAL

2

PHP कोड सर्वर पक्ष पर व्याख्या किया गया है केवल आपके PHP कोड का आउटपुट क्लाइंट को भेजा जाएगा।

तो यदि एक PHP फ़ाइल का अनुरोध किया गया है, तो वेब सर्वर PHP दुभाषिया को PHP कोड भेजता है, आउटपुट की प्रतीक्षा करता है और फिर आउटपुट को क्लाइंट को वापस भेजता है।

+0

ओह, क्या मेरे पास "कोड पीछे" के साथ HTML का नमूना हो सकता है? मैं एएसपीनेट, एचटीएमएल और कोड सीखता हूं, अलग-अलग "पेज" पर हैं: x – CodeGuru

11

यह हो सकता है कि आप यह समझ सकें कि PHP कैसे काम करता है। PHP एक पूर्ण भाषा दुभाषिया है, और वेब सर्वर के बाहर, ब्राउज़र के बिना PHP स्क्रिप्ट चलाने के लिए पूरी तरह से संभव है: कमांड लाइन पर या आईडीई या अन्य जीयूआई वातावरण में।

जो PHP प्रीप्रोसेसर आप बोलते हैं वह केवल अपाचे मॉड्यूल का कार्य है जो इस विशेष सीमित उद्देश्य के लिए PHP दुभाषिया पर कॉल करता है।

+0

अधिकांश प्रश्न जो मैं वेब सर्वर के उपयोग में उससे संबंधित हूं। मैंने उस प्रश्न में निर्दिष्ट किया। –

+1

हालांकि यह सच है, संदर्भ जो 99.9% सभी PHP-चर्चाओं के आसपास विकसित होता है वह सर्वर-साइड स्क्रिप्टिंग है। सर्वर-साइड स्क्रिप्टिंग, आखिरकार, किस PHP के लिए डिज़ाइन किया गया था। यह मानते हुए कि डिफ़ॉल्ट रूप से PHP == सर्वर-साइड स्क्रिप्टिंग बहुत व्यावहारिक है। – kusma

+0

मैं मानता हूं, प्रीप्रोसेसर भाग इस बिंदु पर कुछ हद तक अनैतिक है और मुख्य रूप से संक्षिप्त नाम बनाने के नाम पर है। – JAL

0

PHP सामान्य सर्वर-साइड परिदृश्य में http अनुरोधों का जवाब देता है। ब्राउज़र इस प्रतिक्रिया को पढ़ता है और इसे प्रस्तुत करने और क्लाइंट पक्ष पर प्रतिक्रिया में एम्बेडेड अतिरिक्त गतिशील स्क्रिप्ट चलाने के लिए ज़िम्मेदार है। यह अनिवार्य रूप से उस परिदृश्य में श्रम का विभाजन है।

1

एक महत्वपूर्ण अंतर यह है कि JavaSc एक ब्राउज़र में रिप्ति घटना संचालित है। यही कारण है कि पेज क्लिक के रूप में एक क्लिक हैंडलर को तुरंत निष्पादित नहीं किया जाता है, उदाहरण के लिए। जावास्क्रिप्ट उस क्लिक पर प्रतिक्रिया देने का इंतजार नहीं कर सका, अगर यह डोम प्रोग्रामिंग की घटना संचालित शैली के लिए नहीं था।

मुझे नहीं लगता कि यह 'प्रीप्रोसेसर' शब्द का अर्थ है। ग्राहक/सर्वर पक्ष भेद अधिक महत्वपूर्ण है। उदाहरण के लिए, क्या आपने PHP के समान कार्य करने के दौरान किसी अन्य सर्वर साइड भाषा को प्रीप्रोसेसर के रूप में संदर्भित किया है?

2

संक्षेप में, PHP सर्वर से संबंधित है, यह आमतौर पर तब HTML आउटपुट करता है लेकिन यह इसके लिए यहां नहीं है (या कम से कम, केवल इसके लिए नहीं)। उपयोगकर्ता ब्राउज़र "देखता है" केवल php के बाद ही रहता है।

जावास्क्रिप्ट क्लाइंट (उर्फ ब्राउज़र) से संबंधित है: यह आम तौर पर एचटीएमएल को पार्स करके बनाए गए डोम को संभालता है, जो संभवतः PHP को निष्पादित करके उत्पादित किया जाता है। जावास्क्रिप्ट अलग-अलग ब्राउज़रों में अलग-अलग व्यवहार कर सकता है (जेएस स्क्रिप्ट लिखे गए सभी लोग क्रॉस-ब्राउज़र समस्याओं के बारे में जानते हैं, क्या आपको आईई 6 याद है?) जावास्क्रिप्ट डेटाबेस को स्वयं ही संभाल नहीं सकता; इसे एक अलग-अलग भाषा (php, शायद?;) पर भरोसा करना है (अगर node.js के बारे में बात करना है)

बीटीडब्ल्यू, AJAX यह समझने के लिए एक अच्छा संदर्भ हो सकता है कि वास्तव में PHP क्या करता है और जेएस क्या करता है।

0

PHP सर्वर-साइड स्क्रिप्टिंग भाषा है जिसका अर्थ है कि क्लाइंट पक्ष को पृष्ठ भेजने से पहले सभी PHP कोड निष्पादित किया जाता है। इसी कारण से आप कभी भी

<?php ... ?> 

पृष्ठ स्रोत में कभी नहीं देखेंगे।

उच्च अमूर्त स्तर पर ... आप चार अलग-अलग हिस्सों के घटक के रूप में वेब सर्वर (हार्डवेयर) पर विचार कर सकते हैं। वेबसर्वर (सॉफ्टवेयर, उदाहरण के लिए अपाचे), फाइल सिस्टम, डेटाबेस और PHP प्लगइन।

तो उदाहरण के लिए जब आपने वेब सर्वर पर पेज अनुरोध (कुछ पेज .../example.php) भेजा है तो अपाचे फ़ाइल सिस्टम में उस पृष्ठ को खोजने का प्रयास करेगा और यदि पृष्ठ मौजूद है तो वह निष्पादित करने के लिए php प्लगइन को कॉल करेगा सभी

<?php ... ?> 

कोड (निश्चित रूप से डीबी क्वेरी सहित)। उसके बाद पेज क्लाइंट पक्ष जहां जावास्क्रिप्ट के माध्यम से पृष्ठ के साथ हेरफेर कर सकते हैं करने के लिए वापस भेज दिया जाता है, सीएसएस के माध्यम से तैयार किया गया है ...

अधिक पर: https://www.youtube.com/watch?v=PemsuAfc7Jw

+0

सामान्य रूप से, PHP केवल एक सर्वर-साइड स्क्रिप्टिंग भाषा नहीं है। कृपया http://stackoverflow.com/tags/php/info, "एसएपीआई समर्थन" अनुभाग पढ़ें। – doc

0

कारण है कि PHP स्क्रिप्ट एक वेब ब्राउज़र में काम नहीं कर रहे केवल इसलिए है क्योंकि वेब ब्राउज़र PHP का समर्थन नहीं करते हैं (कम से कम मुझे कोई नहीं पता)। यह तथ्य उतना छोटा नहीं है जितना कोई सोच सकता है।

और यह परेशान हो सकता है, इसलिए HTML 5 और HTML 4.01 की डब्ल्यू 3 सी वेबसाइट पर HTML विनिर्देशों पर नज़र डालें (क्योंकि इसमें अधिक वर्बोज़ उदाहरण हैं)। आप क्या पा सकते हैं वह स्क्रिप्ट जावास्क्रिप्ट के अलावा अन्य भाषाओं में लिखी जा सकती है!

यहां HTML 4.01 दस्तावेज (Specifying the scripting language शीर्षक वाला अनुभाग) का एक उदाहरण दिया गया है।

<SCRIPT type="text/javascript"> 
     function my_onload() { 
     . . . 
     } 

     var win = window.open("some/other/URI") 
     if (win) win.onload = my_onload 
</SCRIPT> 

Tcl में यह लगता है कि:

<SCRIPT type="text/tcl"> 
    proc my_onload {} { 
     . . . 
    } 
    set win [window open "some/other/URI"] 
    if {$win != ""} { 
     $win onload my_onload 
    } 
</SCRIPT> 

स्क्रिप्ट Tcl में लिखा


(...)

यहाँ एक और अधिक दिलचस्प खिड़की हैंडलर है बिल्कुल ठीक है एचटीएमएल में! PHP के बारे में क्या? HTML5 documentation का कहना है:

उपयोगकर्ता एजेंट पटकथा भाषा का समर्थन करने के अगर स्क्रिप्ट ब्लॉक के प्रकार के प्रत्येक घटक एक पटकथा भाषा के MIME प्रकार स्ट्रिंग में इसी घटक के लिए एक ASCII केस-संवेदी मुकाबला नहीं है कहा जाता है कि उपयोगकर्ता एजेंट लागू करता है। (...) उपयोगकर्ता एजेंट अन्य भाषाओं के लिए अन्य MIME प्रकारों का समर्थन कर सकते हैं, लेकिन ऊपर सूची में भाषाओं के लिए अन्य MIME प्रकारों का समर्थन नहीं करना चाहिए। उपयोगकर्ता एजेंटों को उपरोक्त सूचीबद्ध भाषाओं का समर्थन करने की आवश्यकता नहीं है।

इस प्रकार यह केवल वेब ब्राउज़र (उपयोगकर्ता एजेंट) तक है यदि यह PHP का समर्थन करने जा रहा है या नहीं। W3C उदाहरण के साथ बजाना, PHP जागरूक वेब ब्राउज़र ने ऐसा कुछ स्वीकार कर लिया होगा।

<script type="text/php"> 
     function my_onload() { 
     . . . 
     } 

     $win = $window->open('some/other/URI'); 
     if ($win !== false) 
      $win->onload = 'my_onload'; 
</script> 

तो, लोगों को ऐसे प्रश्न पूछने का कारण यह नहीं है कि वे नहीं जानते कि PHP कैसे काम करता है। ऐसा इसलिए है क्योंकि वे सामान्य रूप से वेब तकनीक को नहीं समझते हैं। वे बिंदु पर असफल होते हैं, जिसके बारे में समझने की आवश्यकता होती है कि, कहां और क्यों निष्पादित किया जाना चाहिए।

संबंधित मुद्दे