PHPPHP के साथ शुरुआत करना


टिप्पणियों

यहाँ छवि विवरण दर्ज करें

PHP ( PHP के लिए पुनरावर्ती संक्षिप्तिकरण: हाइपरटेक्स्ट प्रीप्रोसेसर) एक व्यापक रूप से उपयोग किया जाने वाला खुला स्रोत प्रोग्रामिंग भाषा है। यह वेब विकास के लिए विशेष रूप से अनुकूल है। PHP के बारे में अनोखी बात यह है कि यह शुरुआती और अनुभवी डेवलपर्स दोनों की सेवा करता है। इसमें प्रवेश के लिए एक कम बाधा है इसलिए इसे शुरू करना आसान है, और साथ ही, यह अन्य प्रोग्रामिंग भाषाओं में पेश की गई उन्नत सुविधाएँ प्रदान करता है।

खुला स्त्रोत

यह एक ओपन-सोर्स प्रोजेक्ट है। बेझिझक शामिल हो जाओ

भाषा विशिष्टता

PHP में एक भाषा विनिर्देश है

समर्थित संस्करण

वर्तमान में, तीन समर्थित संस्करण हैं : 5.6, 7.0 और 7.1।

PHP की प्रत्येक रिलीज़ शाखा अपने प्रारंभिक स्थिर रिलीज़ से दो साल के लिए पूरी तरह से समर्थित है। सक्रिय समर्थन की इस दो साल की अवधि के बाद, प्रत्येक शाखा को केवल महत्वपूर्ण सुरक्षा मुद्दों के लिए एक अतिरिक्त वर्ष के लिए समर्थित किया जाता है। इस अवधि के दौरान रिलीज़ की गई जरूरत के आधार पर की जाती है: रिपोर्ट की संख्या के आधार पर कई बिंदु रिलीज़ हो सकते हैं, या कोई भी नहीं।

असमर्थित संस्करण

एक बार जब तीन साल का समर्थन पूरा हो जाता है, तो शाखा अपने जीवन के अंत तक पहुंच जाती है और अब समर्थित नहीं होती है।

जीवन शाखाओं के अंत की एक तालिका उपलब्ध है।

मुद्दा पर नज़र रखने वाला

कीड़े और अन्य मुद्दों को https://bugs.php.net/ पर ट्रैक किया जाता है।

ईमेल की सूची

PHP मेलिंग सूचियों पर PHP के विकास और उपयोग के बारे में चर्चाएँ आयोजित की जाती हैं।

आधिकारिक दस्तावेज

कृपया आधिकारिक PHP प्रलेखन को बनाए रखने या अनुवाद करने में मदद करें।

आप edit.php.net पर संपादक का उपयोग कर सकते हैं। योगदानकर्ताओं के लिए हमारी मार्गदर्शिका देखें।

संस्करण

PHP 7.x

संस्करण तक सहयोग किया रिलीज़ की तारीख
7.1 2019/12/01 2016/12/01
7.0 2018/12/03 2015/12/03

PHP 5.x

संस्करण तक सहयोग किया रिलीज़ की तारीख
5.6 2018/12/31 2014-08-28
5.5 2016/07/21 2013-06-20
5.4 2015/09/03 2012-03-01
5.3 2014-08-14 2009-06-30
5.2 2011-01-06 2006/11/02
5.1 2006-08-24 2005/11/24
5.0 2005/09/05 2004/07/13

PHP 4.x

संस्करण तक सहयोग किया रिलीज़ की तारीख
4.4 2008-08-07 2005/07/11
4.3 2005/03/31 2002/12/27
4.2 2002/09/06 2002/04/22
4.1 2002/03/12 2001/12/10
4.0 2001/06/23 2000/05/22

विरासत संस्करण

संस्करण तक सहयोग किया रिलीज़ की तारीख
3.0 2000/10/20 1998/06/06
2.0 1997/11/01
1.0 1995/06/08

वेब सर्वर से HTML आउटपुट

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

निम्न HTML मार्कअप में एक PHP स्टेटमेंट होता है जो Hello World! को जोड़ेगा Hello World! उत्पादन के लिए:

<!DOCTYPE html>
<html>
    <head>
        <title>PHP!</title>
    </head>
    <body>
        <p><?php echo "Hello world!"; ?></p>
    </body>
</html>
 

जब इसे एक PHP स्क्रिप्ट के रूप में सहेजा जाता है और एक वेब सर्वर द्वारा निष्पादित किया जाता है, तो निम्न HTML उपयोगकर्ता के ब्राउज़र में भेजा जाएगा:

<!DOCTYPE html>
<html>
    <head>
        <title>PHP!</title>
    </head>
    <body>
        <p>Hello world!</p>
    </body>
</html>
 
PHP 5.x 5.4

echo में एक शॉर्टकट सिंटैक्स भी है, जो आपको तुरंत एक मूल्य प्रिंट करने देता है। PHP 5.4.0 से पहले, यह छोटा सिंटैक्स केवल short_open_tag कॉन्फ़िगरेशन सेटिंग सक्षम करने के साथ काम करता है।

उदाहरण के लिए, निम्नलिखित कोड पर विचार करें:

<p><?= "Hello world!" ?></p>
 

इसका आउटपुट निम्न के आउटपुट के समान है:

<p><?php echo "Hello world!"; ?></p>
 

वास्तविक दुनिया के अनुप्रयोगों में, PHP से HTML पेज पर सभी डेटा आउटपुट को XSS ( क्रॉस-साइट स्क्रिप्टिंग ) हमलों या पाठ भ्रष्टाचार को रोकने के लिए ठीक से बच जाना चाहिए।

यह भी देखें: स्ट्रिंग्स और PSR-1 , जिसमें सर्वोत्तम प्रथाओं का वर्णन किया गया है, जिसमें लघु टैग के उचित उपयोग ( <?= ... ?> ) शामिल हैं।

नमस्ते दुनिया!

PHP में आउटपुट प्रिंट करने के लिए सबसे व्यापक रूप से उपयोग की जाने वाली भाषा निर्माण echo :

echo "Hello, World!\n";
 

वैकल्पिक रूप से, आप print भी उपयोग कर सकते हैं:

print "Hello, World!\n";
 

दोनों बयान मामूली अंतर के साथ एक ही कार्य करते हैं:

  • echo में void रिटर्न है, जबकि print 1 मान के साथ एक int रिटर्न देता है
  • echo कई तर्क दे सकता है (केवल कोष्ठक के बिना), जबकि print केवल एक तर्क लेता है
  • echo print तुलना में थोड़ा तेज है

echo और print दोनों भाषा निर्माण हैं, कार्य नहीं। इसका मतलब है कि उन्हें अपने तर्कों के आसपास कोष्ठक की आवश्यकता नहीं है। कार्यों के साथ कॉस्मेटिक स्थिरता के लिए, कोष्ठक शामिल किए जा सकते हैं। echo और print के उपयोग के व्यापक उदाहरण अन्यत्र उपलब्ध हैं

सी-स्टाइल printf और संबंधित कार्य निम्न उदाहरण में उपलब्ध हैं:

printf("%s\n", "Hello, World!");
 

PHP में आउटपुट वेरिएबल की एक व्यापक शुरूआत के लिए एक चर के मूल्य का आउटपुट देखें।

निर्देश पृथक्करण

अधिकांश अन्य सी-शैली भाषाओं की तरह, प्रत्येक कथन को अर्धविराम के साथ समाप्त किया जाता है। साथ ही, PHP ब्लॉक के कोड की अंतिम पंक्ति को समाप्त करने के लिए एक समापन टैग का उपयोग किया जाता है।

यदि PHP कोड की अंतिम पंक्ति अर्धविराम के साथ समाप्त होती है, तो कोड का अंतिम विकल्प होने के बाद कोई कोड नहीं होने पर समापन टैग वैकल्पिक है। उदाहरण के लिए, हम echo "No error"; बाद समापन टैग को छोड़ सकते हैं echo "No error"; निम्नलिखित उदाहरण में:

<?php echo "No error"; // no closing tag is needed as long as there is no code below
 

हालाँकि, यदि आपके PHP कोड ब्लॉक के बाद कोई अन्य कोड है, तो समापन टैग अब वैकल्पिक नहीं है:

<?php echo "This will cause an error if you leave out the closing tag"; ?>
<html>
    <body>
    </body>
</html>
 

हम एक पीएचपी कोड ब्लॉक में अंतिम स्टेटमेंट का सेमीकॉलन भी छोड़ सकते हैं यदि उस कोड ब्लॉक में एक क्लोजिंग टैग हो:

<?php echo "I hope this helps! :D";
echo "No error" ?>      
 

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

तो, आपका कोड मूल रूप से इस तरह दिखना चाहिए:

<?php
    echo "Here we use a semicolon!";
    echo "Here as well!";
    echo "Here as well!";
    echo "Here we use a semicolon and a closing tag because more code follows";
?>
<p>Some HTML code goes here</p>
<?php
    echo "Here we use a semicolon!";
    echo "Here as well!";
    echo "Here as well!";
    echo "Here we use a semicolon and a closing tag because more code follows";
?>
<p>Some HTML code goes here</p>
<?php
    echo "Here we use a semicolon!";
    echo "Here as well!";
    echo "Here as well!";
    echo "Here we use a semicolon but leave out the closing tag";
 

वेब सर्वर से गैर-HTML आउटपुट

कुछ मामलों में, वेब सर्वर के साथ काम करते समय, वेब सर्वर के डिफ़ॉल्ट सामग्री प्रकार को ओवरराइड करने की आवश्यकता हो सकती है। उदाहरण के लिए, ऐसे मामले भी हो सकते हैं जिनमें आपको plain text , JSON या XML रूप में डेटा भेजने की आवश्यकता होती है।

header() फ़ंक्शन एक कच्चा HTTP हेडर भेज सकता है। आप हमारे द्वारा भेजे जा रहे सामग्री के ब्राउज़र को सूचित करने के लिए Content-Type हेडर जोड़ सकते हैं।

निम्नलिखित कोड पर विचार करें, जहां हमने Content-Type को text/plain रूप में सेट किया है:

header("Content-Type: text/plain");
echo "Hello World";
 

यह निम्नलिखित सामग्री के साथ एक सादे पाठ दस्तावेज़ का उत्पादन करेगा:

नमस्ते दुनिया

JSON सामग्री का उत्पादन करने के लिए, इसके बजाय application/json सामग्री प्रकार का उपयोग करें:

header("Content-Type: application/json");

// Create a PHP data array.
$data = ["response" => "Hello World"];

// json_encode will convert it to a valid JSON string.
echo json_encode($data);
 

यह निम्नलिखित सामग्री के साथ प्रकार के application/json एक दस्तावेज़ का उत्पादन करेगा:

{"प्रतिक्रिया": "हैलो वर्ल्ड"}

ध्यान दें कि किसी भी आउटपुट का उत्पादन करने से पहले header() फ़ंक्शन को कॉल किया जाना चाहिए, या वेब सर्वर ने प्रतिक्रिया के लिए हेडर पहले ही भेज दिया होगा। तो, निम्नलिखित कोड पर विचार करें:

// Error: We cannot send any output before the headers
echo "Hello";

// All headers must be sent before ANY PHP output
header("Content-Type: text/plain");
echo "World";
 

यह एक चेतावनी का उत्पादन करेगा:

चेतावनी: हेडर जानकारी को संशोधित नहीं कर सकते - हेडर पहले से ही भेजे गए (आउटपुट /dir/example.php:2 पर शुरू हुआ) लाइन 3 में /dir/example.php में।

header() का उपयोग करते समय, इसके आउटपुट को सर्वर से भेजे जाने वाले पहले बाइट की आवश्यकता होती है। इस कारण से PHP ओपनिंग टैग <?php से पहले फ़ाइल की शुरुआत में खाली लाइनों या रिक्त स्थान का न होना महत्वपूर्ण है। उसी कारण से, PHP बंद करने के टैग को छोड़ने के लिए इसे सबसे अच्छा अभ्यास ( PSR-2 देखें) माना जाता है ?> फ़ाइल से केवल PHP और PHP कोड के ब्लॉक में फाइल के बहुत अंत में।

आउटपुट बफ़रिंग अनुभाग देखें कि बाद में आउटपुट करने के लिए एक चर में अपनी सामग्री को 'कैसे' पकड़ें, उदाहरण के लिए, हेडर के आउटपुट के बाद।

PHP में निर्मित सर्वर

PHP 5.4+ एक अंतर्निहित विकास सर्वर के साथ आता है। इसका उपयोग उत्पादन HTTP सर्वर जैसे कि nginx या Apache को स्थापित करने के लिए बिना एप्लिकेशन को चलाने के लिए किया जा सकता है। अंतर्निहित सर्वर को केवल विकास और परीक्षण उद्देश्यों के लिए उपयोग करने के लिए डिज़ाइन किया गया है।

इसे -S ध्वज का उपयोग करके प्रारंभ किया जा सकता है:

php -S <host/ip>:<port>
 

उदाहरण उपयोग

  1. एक index.php फ़ाइल युक्त बनाएँ:
<?php
echo "Hello World from built-in PHP server";
 
  1. कमांड php -S localhost:8080 रन करें php -S localhost:8080 कमांड लाइन से। http:// शामिल न करें। यह एक वेब सर्वर को चालू निर्देशिका का उपयोग करके पोर्ट 8080 पर सुनना शुरू कर देगा जो आप दस्तावेज़ रूट के रूप में हैं।

  2. ब्राउज़र खोलें और http://localhost:8080 नेविगेट करें। आपको अपना "हैलो वर्ल्ड" पेज देखना चाहिए।

विन्यास

डिफ़ॉल्ट दस्तावेज़ रूट (यानी वर्तमान निर्देशिका) को ओवरराइड करने के लिए, -t ध्वज का उपयोग करें:

php -S <host/ip>:<port> -t <directory>
 

उदाहरण के लिए, यदि आपके पास अपनी परियोजना में एक public/ निर्देशिका है, तो आप php -S localhost:8080 -t public/ का उपयोग करके उस निर्देशिका से अपनी परियोजना की सेवा कर सकते हैं।

लॉग्स

हर बार विकास सर्वर से एक अनुरोध किया जाता है, नीचे दिए गए लॉग की तरह एक लॉग प्रविष्टि कमांड लाइन को लिखा जाता है।

[Mon Aug 15 18:20:19 2016] ::1:52455 [200]: /
 

PHP सीएलआई

PHP को CLI (कमांड लाइन इंटरफ़ेस) का उपयोग करके सीधे कमांड लाइन से भी चलाया जा सकता है।

CLI मूल रूप से वेब सर्वर से PHP के समान है, मानक इनपुट और आउटपुट के मामले में कुछ अंतरों को छोड़कर।

ट्रिगर

PHP CLI PHP कोड को चलाने के चार तरीके देता है:

  1. मानक इनपुट। बिना किसी तर्क के php कमांड चलाएं, लेकिन PHP कोड को इसमें डालें:
    echo '<?php echo "Hello world!";' | php
  2. तर्क के रूप में नाम दिया गया। PHP तर्क फ़ाइल के नाम के साथ php कमांड को पहले तर्क के रूप में चलाएँ:
    php hello_world.php
  3. तर्क के रूप में कोड। php कमांड में -r विकल्प का उपयोग करें, इसके बाद कोड को रन करें। <?php खुले टैग की आवश्यकता नहीं है, क्योंकि तर्क में सब कुछ PHP कोड के रूप में माना जाता है:
    php -r 'echo "Hello world!";'
  4. परस्पर खोल। एक इंटरैक्टिव शेल लॉन्च करने के लिए php कमांड में -a विकल्प का उपयोग करें। फिर, PHP कोड टाइप करें (या पेस्ट करें) और वापसी लौटें :
    $ php -a
    Interactive mode enabled
    php > echo "Hello world!";
    Hello world!

उत्पादन

वेब सर्वर PHP में HTML आउटपुट का उत्पादन करने वाले सभी कार्यों या नियंत्रणों का उपयोग stdout स्ट्रीम (फ़ाइल डिस्क्रिप्टर 1) में आउटपुट का उत्पादन करने के लिए किया जा सकता है, और वेब सर्वर PHP में त्रुटि लॉग में आउटपुट का उत्पादन करने वाले सभी कार्य, stderr स्ट्रीम में आउटपुट का उत्पादन करेंगे (फ़ाइल वर्णनकर्ता 2)।

Example.php
<?php
echo "Stdout 1\n";
trigger_error("Stderr 2\n");
print_r("Stdout 3\n");
fwrite(STDERR, "Stderr 4\n");
throw new RuntimeException("Stderr 5\n");
?>
Stdout 6
 
शेल कमांड लाइन
$ php Example.php 2>stderr.log >stdout.log;\
> echo STDOUT; cat stdout.log; echo;\
> echo STDERR; cat stderr.log\

STDOUT
Stdout 1
Stdout 3

STDERR
Stderr 4
PHP Notice:  Stderr 2
 in /Example.php on line 3
PHP Fatal error:  Uncaught RuntimeException: Stderr 5
 in /Example.php:6
Stack trace:
#0 {main}
  thrown in /Example.php on line 6
 

इनपुट

देखें: कमांड लाइन इंटरफ़ेस (सीएलआई)

PHP टैग

किसी फ़ाइल में PHP ब्लॉक को चिह्नित करने के लिए तीन प्रकार के टैग हैं। PHP पार्सर उद्घाटन की तलाश कर रहा है और (यदि मौजूद है) कोड को व्याख्या करने के लिए परिसीमन करने के लिए टैग बंद कर रहा है।

मानक टैग

ये टैग फ़ाइल में PHP कोड को एम्बेड करने के लिए मानक विधि है।

<?php
    echo "Hello World";
?>
 
PHP 5.x 5.4

इको टैग

ये टैग सभी PHP संस्करणों में उपलब्ध हैं, और चूंकि PHP 5.4 हमेशा सक्षम होता है। पिछले संस्करणों में, इको टैग केवल शॉर्ट टैग के साथ संयोजन में सक्षम किया जा सकता है।

<?= "Hello World" ?>
 

संक्षिप्त टैग

आप इन टैग्स को short_open_tag विकल्प के साथ अक्षम या सक्षम कर सकते हैं।

<?
    echo "Hello World";
?>
 

लघु टैग:

  • सभी प्रमुख PHP कोडिंग मानकों में अस्वीकृत हैं
  • आधिकारिक दस्तावेज में हतोत्साहित किया जाता है
  • अधिकांश वितरण में डिफ़ॉल्ट रूप से अक्षम हैं
  • इनलाइन XML के प्रोसेसिंग निर्देशों के साथ हस्तक्षेप करें
  • अधिकांश ओपन सोर्स प्रोजेक्ट्स द्वारा कोड सबमिशन में स्वीकार नहीं किया जाता है
PHP 5.x 5.6

एएसपी टैग

asp_tags विकल्प को सक्षम करके, ASP- शैली टैग का उपयोग किया जा सकता है।

<%
    echo "Hello World";
%>
 

ये एक ऐतिहासिक विचित्रता है और इसका उपयोग कभी नहीं किया जाना चाहिए। उन्हें PHP 7.0 में हटा दिया गया था।