PHP language (part-2)
Strings
PHP Strings
* Introduction to PHP strings in Hindi
* Creating PHP strings in Hindi
* Displaying PHP strings in Hindi
* Displaying PHP strings in Hindi
* PHP string functions in Hindi
Introduction to PHP strings
जब बहुत से characters को एक साथ sequence में लिखा जाता है तो वे एक string का निर्माण करते है। उदाहरण के लिए india एक string है। ये i,n,d,i,a characters से मिलकर बनी है। एक string निचे दिए गए elements से मिलकर बनी हो सकती है।
* Letters - एक string small letters (a - z) या capital letters (A - Z) से मिलकर बनी हो सकती है।
* Numbers - एक string में zero से लेकर 9 तक का कोई भी number हो सकता है।
* Special Characters - एक string में special characters (@#$%^&!) भी हो सकते है। Special characters को string के रूप में display करने के लिए escape sequence characters use किये जाते है।
Web pages और databases में strings का बहुत अधिक महत्व होता है। इसलिए ये जरुरी है की एक scripting language आपको strings के साथ work करने की capability provide करे।
PHP आपको strings के साथ work करने के लिए support provide करती है। PHP में strings create करना और उनके साथ work करना बहुत ही आसान है। साथ ही PHP आपको strings के साथ work करने के लिए कुछ built in functions भी provide करती है। आइये अब देखते है की आप किस प्रकार PHP में strings create कर सकते है।
1. Creating PHP Strings
PHP में strings आप किसी normal variable की तरह ही create करते है। इसका general syntax निचे दिया जा रहा है।
$string-name = "string";
आप चाहे तो string को double quotes में ना लिखकर single quotes में भी लिख सकते है।
आप चाहे तो string को double quotes में ना लिखकर single quotes में भी लिख सकते है।
$string-name = 'string';
दोनों ही तरीकों में पहले आप $ symbol के साथ string variable define करते है और उसके बाद assignment operator लगाकर string लिखते है। निचे इसे एक उदाहरण के द्वारा समझाया गया है।
$MyString = "Hello Reader!";
ऊपर दिए गए उदाहरण में MyString नाम से एक string create की गयी है।
2. Displaying PHP Strings
PHP में strings को display करने के लिए echo statement को सबसे अधिक use किया जाता है। इसका general syntax निचे दिया जा रहा है।
echo "$string-name";
echo "$string-name";
उदाहरण के लिए आप ऊपर create की गयी string को display करवाना चाहते है तो इसके लिए आप echo statement इस प्रकार लिखेंगे।
echo "$MyString";
जैसा की मैने आपको पहले बताया कुछ characters को string के रूप में display करने के लिए आपको escape sequence characters की आवश्यकता होती है। कुछ escape sequence charachters की list निचे दी जा रही है।
1. - ये new line character होता है, इससे pointer दूसरी line में चल जाता है।
2. - ये carriage return character होता है, इससे pointer line के शुरू में चल जाता है।
3. - इसके द्वारा आप string में tab space देते है।
4. - String में $ sign को include करने के लिए आप इस character को use करते है।
5. quot; - String में double quotes show करने के लिए आप इस character का इस्तेमाल करते है। इससे सिर्फ एक ही double quote show होगा।
6. \ - String में black slash character show करने के लिए आप इस escape sequence character को use कर सकते है।
Escape sequence characters के use को निचे एक उदाहरण के माध्यम से समझाया जा रहा है।
<?php
$MyString = "Best quot;Hindiquot; Tutorials";
echo "$MyString";
?>
ऊपर दिए गए उदाहरण में जब MyString नाम से create की गयी string display होगी तो Hindi को double quotes में display किया जाएगा।
$MyString = "Best quot;Hindiquot; Tutorials";
echo "$MyString";
?>
ऊपर दिए गए उदाहरण में जब MyString नाम से create की गयी string display होगी तो Hindi को double quotes में display किया जाएगा।
3. PHP String Functions
PHP आपको लगभग 100 built in string functions provide करती है। इनमें से कुछ functions को example द्वारा निचे समझाया जा रहा है।
strlen()
इस function द्वारा आप किसी भी string की length प्राप्त कर सकते है। Argument के रूप में आप इस string में एक constant string या string variable pass करते है। ये function आपको string में जितने characters है उतनी ही संख्या return करता है। इस संख्या में spaces भी शामिल होते है। इसे निचे उदाहरण के माध्यम से समझाया गया है।
strlen()
इस function द्वारा आप किसी भी string की length प्राप्त कर सकते है। Argument के रूप में आप इस string में एक constant string या string variable pass करते है। ये function आपको string में जितने characters है उतनी ही संख्या return करता है। इस संख्या में spaces भी शामिल होते है। इसे निचे उदाहरण के माध्यम से समझाया गया है।
<?php
$MyString = "Best Hindi Tutorials";
echo strlen($MyString);
?>
$MyString = "Best Hindi Tutorials";
echo strlen($MyString);
?>
ऊपर दी गयी script निचे दिया गया output generate करती है।
str_word_count()
इस function द्वारा आप किसी भी string में words की संख्या count कर सकते है। Argument के रूप में आप एक string variable या constant string pass करते है। ये function आपको उस string में words की संख्या return करता है। इसे निचे उदाहरण द्वारा समझाया जा रहा है।
<?php
$MyString = "Best Hindi Tutorials";
echo str_word_count($MyString);
?>
$MyString = "Best Hindi Tutorials";
echo str_word_count($MyString);
?>
ऊपर दी गयी script निचे दिया गया output generate करती है।
str_replace()
इस function के द्वारा आप किसी string में से कोई word remove करके उस string को show कर सकते है। Argument के रूप में आप इस function में string variable या constant string और वह word जिसे आप string से remove करना चाहते है pass करते है। इसके निचे उदाहरण के द्वारा समझाया जा रहा है।
<?php
$MyString = "Best Hindi Tutorials";
echo str_replace("Hindi",$MyString);
?>
$MyString = "Best Hindi Tutorials";
echo str_replace("Hindi",$MyString);
?>
ऊपर दिए उदाहरण में MyString string से Hindi word को remove किया गया है। ये script निचे दिया गया output generate करती है।
strrev()
इस function के द्वारा आप किसी भी string को reverse order में display करवा सकते है। Argument के रूप में आप वह string pass करते है जिसे आप reverse order में display करवाना चाहते है। इसे निचे उदाहरण के द्वारा समझाया जा रहा है।
<?php
$MyString = "BEST";
echo strrev($MyString);
?>
ऊपर दी गयी script निचे दिया गया output generate करती है।
$MyString = "BEST";
echo strrev($MyString);
?>
ऊपर दी गयी script निचे दिया गया output generate करती है।
Namespaces
PHP namespaces
* Introduction to PHP namespaces in Hindi
* Defining PHP namespaces in Hindi
* Sub-namespaces in Hindi
* Using namespaces in Hindi
Introduction to PHP namespaces
Namespaces एक तरह के डेटा को एक साथ bind करने के लिए यूज़ किये जाते है। साथ ही ये same नाम की classes एक project में यूज़ करने के लिए भी उपयोगी है। जैसा की आपको पता है की आप एक ही नाम की classes अपने project में यूज़ नहीं कर सकते है। यदि आप ऐसा करेंगे तो errors शो होगी। लेकिन यदि आप इन same नाम की classes को अलग अलग namespaces में रख दे तो आप इस problem से बच सकते है।
एक namespace में आप classes, interfaces और functions store करवा सकते है। ये सभी classes, interfaces और functions के नाम वाली classes, interfaces और functions यदि किसी दूसरे namespace में भी है तो आपका project में कोई error नहीं आएगी। क्योंकि दोनों अलग अलग namespaces में है।
1. Defining namespaces
Namespaces को declare करने के लिए namespace कीवर्ड यूज़ किया जाता है। जब भी आप किसी file में namespace declare करे तो आपको namespace declaration file में सबसे ऊपर करना चाहिए।
जिन classes को आप एक namespace में डालना चाहते है आपको उन सबको एक ही file में रखना जरुरी नहीं है। आप जिस भी file के content को उस namespace में डालना चाहते है उस file में टॉप पर आप वापस namespace को declare कर सकते है। ऐसा करने से उस file का content भी उसी namespace में आ जायेगा।
2. Sub namespaces
किसी sub file directory की तरह ही आप sub namespaces भी क्रिएट कर सकते है।
3. Using Namespaces
किसी भी classes, interfaces और functions को namespace के नाम द्वारा access कर सकते है। इसके लिए आप पहले namespace का नाम लिखते है उसके बाद (/) लगा के जो class, interface या function आप यूज़ करना चाहते है उसका नाम लिखते है।
किसी भी classes, interfaces और functions को namespace के नाम द्वारा access कर सकते है। इसके लिए आप पहले namespace का नाम लिखते है उसके बाद (/) लगा के जो class, interface या function आप यूज़ करना चाहते है उसका नाम लिखते है।
Generators
* Introduction to PHP iterators in Hindi
* Example
* Introduction to PHP generators in Hindi
* Example
Introduction to PHP iterators
जैसा की आपको पता है PHP में arrays objects है। आप for each लूप का प्रयोग करते हुए array के सभी elements को print करवाते है। उसी प्रकार आप for each loop में किसी class भी object पास कर सकते है और उस class को iterate कर सकते है।
लेकिन class को for each लूप के द्वारा iterate करने के लिए आपको अपनी class में Iterator interface को implement करना होगा और Iterator interface के 5 abstract methods की definition अपनी class में provide करनी होगी। ये methods for loop की तरह ही काम करते है। ये methods निचे दिए जा रहे है -
* current() - Used to print current value or perform current task. It is same as for loop body.
* key() - This function represent the key that will be used to iterate with in class.
* next() - This function is same as for loop increment part.
* rewind() - This function is same as for loop initialization part.
* valid() - This function is same as for loop condition checking.
आइये अब iteration का एक उदाहरण देखते है।
ये एक बहुत ही simple उदाहरण है यदि आप for each लूप का उपयोग जानते है तो आसानी से इसे समझ सकते है।
1. Introduction to PHP Generators
एक iterator क्रिएट करने के लिए आप को ऐसी class का object create करना पड़ता है जो Iterator interface को implement करती है। लेकिन generator की मदद से आप easily iterator implement कर सकते है। और इसके लिए आपको ना कोई object क्रिएट करने की जरुरत है और ना ही iterator interface को implement करने की जरुरत है। जैसे आप for each लूप द्वारा किसी array पर iterate करते है वैसे ही आप generator function को भी iterate कर सकते है।
Generator में आप ऐसा code लिखते है जो for each loop को यूज़ करता है और आपके डेटा को iterate करता है। और इसके लिए generator memory में कोई array भी क्रिएट नहीं करता है। Normal iterator array क्रिएट करता है जो कई बार memory भी exceed कर जाता है और ऐसे iterator generate होने में समय भी बहुत लगता है।
इसके बजाये आप एक generator function लिख सकते है जो एक normal function की तरह ही होता है सिवाय इसके की generator में आप एक से ज्यादा values return कर सकते है। इसके लिए आप yield keyword यूज़ करते है।
जब generator function पहली बार call होता है तो Generator class का object क्रिएट होता है। ये class Iterator interface को implement करती है। इसका क्लास को object आप new keyword द्वारा क्रिएट नहीं कर सकते है। ये सिर्फ तब ही क्रिएट होता है जब generator function कॉल किया जाता है। ये class ऐसे methods provide करती है जिनकी मदद से आप generator को manipulate कर सकते है। और इसी क्लास की object की मदद से आप values को return भी करते है।
जैसा की मैने आपको पहले बताया की generator एक simple function होता है जो एक से ज्यादा values return करता है। लेकिन हम ऐसे value return करना ना कह कर yield (produce, generate ,पैदा ) करना कहते है। इसीलिए इन functions को generator कहा जाता है। Generators जितनी values की आवश्यकता होती है उतनी ही values produce कर सकते है।
जब generator function कॉल होता है तो ये ऐसा object return करता है जिसे iterate किया जा सकता है (किसी लूप के द्वारा )। जब आप इस object को iterate करते है तो PHP उस generator function को call करती है जब उसे किसी value की आवश्यकता होती है। जब generator कोई value yield करता है तो उसकी state save हो जाती है ताकि दुबारा वही से शुरू हो सके। जब yield करने के लिए कोई value नहीं रहती है तो generator function exit हो जाता है।
Generator functions में आप return statement नहीं लिख सकते है। यदि आप ऐसा करते है तो इससे आपके program में error आएगी। Generators को terminate करने के लिए आप एक empty return statement लिखते है।
Yield keyword किसी return statement की तरह ही होता है बजाय इसके की ये value को yield करने के बाद generator function को exit नहीं करता है बल्कि उसे pause कर देता है।
जब आप किसी array को for each loop में डालते है तो loop उस array की सभी values को print(traverse) करता है। ऐसे ही जब आप किसी generator function को किसी for each loop में डालते है तो for each लूप उस function में generate होने वाली सभी values को print करता है।
जब भी आप generator function create करे तो वो function ऐसा होना चाहिए जो अलग अलग values return करे। एक सी values भी return कर सकता है लेकिन इससे कोई फायदा नहीं होगा क्योंकि फिर वह generator ना रह कर loop ही हो जाता है है।
Example
आइये अब एक example के द्वारा generators के concept को समझने का प्रयास करते है -
References
PHP references
* Introduction to PHP references in Hindi
* Assigning values using PHP references in Hindi
* Passing values using PHP references in Hindi
* Returning values using PHP references in Hindi
Introduction to PHP references
PHP में references का references का अहम role होता है। References को अलग अलग purposes के लिए program में यूज़ कर सकते है। ये pointers की तरह नहीं होते है। उदाहरण के लिए निचे दिए हुए program को देखिये।
PHP में references का references का अहम role होता है। References को अलग अलग purposes के लिए program में यूज़ कर सकते है। ये pointers की तरह नहीं होते है। उदाहरण के लिए निचे दिए हुए program को देखिये।
ऊपर दिए हुए program में जब दोनों variables की value print की जाती है तो दोनों same value print करते है क्योंकि दोनों एक ही value को refer कर रहे है।
यदि आप किसी ऐसे variable को assign, pass और return करने की कोशिश करते है जो क्रिएट नहीं किया गया है तो वह variable automatically create हो जाता है। उदाहरण के लिए निचे दिए हुए program को देखिये।
ऊपर दिए गए उदाहरण में myFunction()को call करते समय एक ऐसा variable pass किया जा रहा है जिसको क्रिएट ही नहीं किया गया है। लेकिन क्योंकि function में इस variable का reference पास किया जा रहा है इसलिए PHP इस variable को automatically क्रिएट कर देती है।
यदि आप for each लूप में भी referenced variables यूज़ करते है तो दोनों variables की value update होती है। उदाहरण के लिए निचे दिया हुआ program देखिये।
ऊपर दिए उदाहरण में foreach लूप में $value variable को यूज़ किया गया है लेकिन इसके साथ साथ $number variable में भी array की value update होती है। और जब दोनों variables को प्रिंट किया जाता है तो दोनों ही iteration की last value 5 print करते है।
1. Assigning by reference
एक variable को दूसरे variable की value assign करना बिलकुल simple है। इसके लिए आप ampersand(&) operator यूज़ करते है। आप इस प्रकार reference के द्वारा assign कर सकते है।
Ex.
$a =& $b
जैसा की मैने आपको पहले बताया की PHP में reference का मतलब होता है की दोनों variables same value को point करते है। References को यूज़ करते समय आपको ये बात हमेशा याद रखनी चाहिए। अब जब आप इन दोनों में से किसी भी variable को value assign करेंगे तो दोनों उस एक ही value को point करेंगे।
2. Passing by reference
आप references के द्वारा कोई variable ना पास करके उसका reference भी पास कर सकते है। ऐसा आप function के parameters को ampersand (&) के साथ declare करके कर सकते है। जब आप ऐसा करेंगे तो आप उस parameter को ही function में यूज़ कर सकते है और सभी tasks perform कर सकते है। ऐसा करने से parameter में change आने पर आपको argument भी update हो जाता है। उदाहरण के लिए निचे दिया हुआ program देखिये।
ऊपर दिए हुए उदाहरण में $a का reference पास किया जा रहा है और function $num को यूज़ किया जा रहा है। जब $num की value change होती है तो $a की value भी change होती है और 10 हो जाती है।
3. Returning reference
किसी भी function से reference return करने के लिए आपको function के नाम से पहले ampersand (&) operator यूज़ करना होगा।
Errors
Introduction to PHP errors
जब भी आपके code में कोई error आती है तो PHP उसे एक report की तरह show करती है। जितनी भी errors PHP शो करती है वो किसी ना किसी type की होती है। ये सभी types PHP में constants के द्वारा represent किये गए है और इन सभी की value integer होती है। जब किसी constant की value 1 होती है तो वो error आपको शो होती है। और जब तक उस type की error नहीं आती है तब तक constant की value 0 रहती है। आइये इन error types के बारे में detail से जानने का प्रयास करते है।
जब भी आपके code में कोई error आती है तो PHP उसे एक report की तरह show करती है। जितनी भी errors PHP शो करती है वो किसी ना किसी type की होती है। ये सभी types PHP में constants के द्वारा represent किये गए है और इन सभी की value integer होती है। जब किसी constant की value 1 होती है तो वो error आपको शो होती है। और जब तक उस type की error नहीं आती है तब तक constant की value 0 रहती है। आइये इन error types के बारे में detail से जानने का प्रयास करते है।
Types of PHP errors
* Constants --- E_Error
* Description --- ये एक रन टाइम error होती है। इससे program रुक जाता है। जैसे की memory allocation problem.
* Constants --- E_WARNING
* Description --- ये रन time warnings होती है इससे program रुकता नहीं है।
* Constants --- E_PARSE
* Description --- ये compile time parse errors होती है।
* Constants --- E_NOTICE
* Description --- ये run time में notice होता है की error generate हो सकती है।
* Constants --- E_CORE_ERROR
* Description --- ये वो error होती है जो PHP के startup में आती है।
* Constants --- E_CORE_WARNING
* Description --- ये वो warnings होती है जो PHP के startup में show होती है।
* Constants --- E_COMPILE_ERROR
* Description --- ये वो errors होती है जो PHP code को compile करते समय generate होती है।
* Constants --- E_COMPILE_WARNING
* Description --- ये वो warnings होती है तो PHP code को compile करते समय शो होती है।
* Constants --- E_USER_ERROR
* Description --- ये वो errors होती है जो user खुद के कोड द्वारा खुद generate करता है।
* Constants --- E_USER_WARNING
* Description --- ये यूजर के द्वारा generate की गयी warnings होती है।
* Constants --- E_USER_NOTICE
* Description --- ये यूजर के द्वारा generate किए हुए notices होते है।
* Constants --- E_STRICT
* Description --- ये आपके कोड को improve करने के लिए PHP द्वारा दिए हुए suggestions होते है।
* Constants --- E_RECOVERABLE_ERROR
* Description --- ये errors आसानी से पकड़ में आने वाली होती है। इनसे आपकी application को कोई नुकसान नहीं होता है।
* Constants --- E_ALL
* Description --- ये सभी errors को एक साथ represent करने के लिए यूज़ की जाती है।
1. Error handling
जब भी आपके program में error आये तो उसे handle करना बहुत जरुरी होता है। यदि आप error handling का काम PHP पर छोड़ेंगे तो error आने पर ज्यादातर समय आपका program रुक जाता है। लेकिन यदि आप चाहते है की error आने पर भी आपका प्रोग्राम ना रुके तो आप उन errors को खुद handle कर सकते है। इसका पहला तरीका तो ये है की आप die() function यूज़ करे।
उदाहरण के लिए आप कोई file को PHP code के द्वारा open कर रहे है। लेकिन यदि वो फाइल exist नहीं करती तो आपका program error शो करेगा और terminate हो जायेगा। यदि आप चाहते है की आपका program error शो करे लेकिन terminate ना हो तो इसके लिए आप पहले error condition को चेक करते है। मतलब पहले आप चेक करते है की file exist करती है या नहीं और यदि file exist नहीं करती है तो आप die() function के द्वारा एक error message शो कर देते है।
उदाहरण के लिए आप कोई file को PHP code के द्वारा open कर रहे है। लेकिन यदि वो फाइल exist नहीं करती तो आपका program error शो करेगा और terminate हो जायेगा। यदि आप चाहते है की आपका program error शो करे लेकिन terminate ना हो तो इसके लिए आप पहले error condition को चेक करते है। मतलब पहले आप चेक करते है की file exist करती है या नहीं और यदि file exist नहीं करती है तो आप die() function के द्वारा एक error message शो कर देते है।
HP में errors handle करने का दूसरा तरीका ये है की आप एक खुद का error handler क्रिएट करे। ऐसा करने के लिए आप एक function यूज़ करते है error_function. इस function में आप 2 parameters पास करते है एक तो ऊपर define किये गए error constants और दूसरा error message।
error_function(error_type_constant, error_message)
{
//handle this type of errors here
}
{
//handle this type of errors here
}
Ex.
जब एक बार आप error handler define कर दे तो उस तरह की errors के लिए आपको उसे set भी करना पड़ता है। ताकि जब भी उस type की कोई error आये तो आपका function उसे handle कर ले। ऐसा आप इस तरह से कर सकते है -
set_error_handler("myErrorFunction");
PHP आपको एक और feature provide करती है। PHP में आप खुद की error भी generate कर सकते है और message शो कर सकते है। इसके लिए आप trigger_error function यूज़ करते है। उदाहरण के लिए आप चाहते है की यूज़र किसी variable के लिए 10 से maximum value input ना करे और यदि यूजर ऐसा करता है तो आपको उसे error शो करनी है। ऐसा आप इस प्रकार कर सकते है-
2. PHP Exceptions
PHP भी दूसरी programming languages की तरह exception handling mechanism provide करती है। इसमें आप कुछ keywords की मदद से exceptions को handle करते है। Exceptions ऐसी errors होती है जो run time पर आती है और जिनकी वजह से प्रोग्राम का execution रुक जाता है। जैसे की यदि आप किसी number को 0 से divide कर दे तो program का execution रुक जायेगा। ये एक arithmetic exception है। ये keywords निचे दिए जा रहे है-
Form Handling
Introduction to forms
Forms के बारे में तो आप जानते ही है चाहे कोई नयी email id create करनी हो या किसी exam का online form भरना हो आप HTML forms के द्वारा ही अपनी information पास करते है। किसी भी web page पर user से data input लेने का माध्यम forms होते है।
Forms की मदद से user required information fill करता है फिर एक button पर click करता है। जब user submit button पर क्लिक करता है तो action लिया जाता है। ये action <form> tag के action attribute में define होता है। इस attribute में आप या तो किसी HTML file का address देते है या किसी scripting file का जैसे की PHP या JavaScript.
यदि आपको HTML form को PHP के द्वारा handle करना है तो आप action attribute में किसी PHP file का नाम देते है। और उस PHP file में आप form को हैंडल करते है। इसका उदाहरण निचे दिया गया है -
ऊपर दिए गए उदाहरण में formsDemo.html file में एक form create गया है। इस form में action के रूप में formsDemo.php file को define किया गया है। साथ ही एक method define किया गया है जो की GET है। इस method के बारे में आप आगे जानेंगे।
PHP file में GET array के द्वारा information form से ली गयी है। अब या तो इस information को PHP file वापस browser में ही print कर सकती है (जैसा की example में किया गया है।) या फिर database में store कर सकती है। ये totally आप पर depend करता है।
$_GET एक array है। वो सभी values जो forms के द्वारा submit की जाती है और यदि method GET होता है। तो वो सभी values आप इस array के द्वारा access कर सकते है। बस इसमें आपको उस particular form type का नाम pass करना होता है। और ये आपको उसकी value return करता है। जैसे की ऊपर दिए गए उदाहरण में PHP file में name वाले text का नाम pass करके यूज़ द्वारा enter करवाये गए नाम को echo method के द्वारा print करवाया गया है।
एक बात आपको यंहा पर ध्यान रखनी चाहिए की formDemo.html file browser level पर काम कर रही है। ये यूज़र से browser के द्वारा information ले रही है और PHP file को पास कर रही जो की server से interact कर रही है। क्योंकि PHP file server पर ही execute होती है।
जैसा की आप जानते है PHP code server पर होता है और HTML code client side पर यानि browser में होता है। Browser से information server को भेजने के लिए आपके पास 2 methods है। ऐसा आप GET और POST methods की मदद से कर सकते है। HTML के हर टैग में 2 common attributes होते है name और value। जैसे ही यूज़र submit button पर क्लिक करता है ये name और value server पे जाती है और वहाँ script के according action लिया जाता है। जब भी value server को जाती है तो उस particular tag का name और उसकी value के pair में जाती है।
आइये अब इन दोनों methods के बारे में detail से जानने का प्रयास करते है।
1. PHP GET method
* GET method form की information URL में encode करके भेजता है। कोई भी आसानी से इस information को पढ़ सकता है। इसलिए GET मेथड secure नहीं माना जाता है। यदि user कोई sensitive information submit कर रहा है तो आपको GET method कभी नहीं यूज़ करना चाहिए।
* GET method form की information URL में encode करके भेजता है। कोई भी आसानी से इस information को पढ़ सकता है। इसलिए GET मेथड secure नहीं माना जाता है। यदि user कोई sensitive information submit कर रहा है तो आपको GET method कभी नहीं यूज़ करना चाहिए।
* GET method से आप बहुत कम characters तक की ही information भेज सकते है।
* GET method के द्वारा आप media नहीं भेज सकते है। उदाहरण के लिए आप जैसे कोई व्यक्ति अपनी image upload कर रहा है तो ऐसी situation में आप GET method नहीं यूज़ कर सकते है।
* GET method में information array के रूप में भेजी जाती है जिसमे tag का नाम तो index का काम करता है और tag की value उस index की value होती है। जैसे की $_GET के array है।
उदाहरण के लिए निचे दिए हुए tag को देखिये। जब इन टैग की information server पर जाएगी तो इसके नाम और जो value यूज़र input करेगा उसकी form में जाएगी।
<input type="text" name="userName">
<input type="text" name="userAge">
जब इनकी इनफार्मेशन सर्वर पर जाएगी तो वो इस प्रकार होगी -
जैसा की आप देख रहे है GET मेथड में पूरी information URL में देखी जा सकती है। इसलिए इसे safe नहीं माना जाता है और बहुत कम यूज़ किया जाता है।
2. PHP POST method
* POST method GET मेथड की बजाय secure होता है। इस मेथड में आप information HTTP headers के द्वारा भेजते है। Sensitive information के लिए आपको हमेशा POST method यूज़ करना चाहिए। आइये POST method से जुडी कुछ महत्वपूर्ण बाते जानने का प्रयास करते है।
* POST method में data की कोई limit नहीं होती है, इसमें आप कितनी भी information send कर सकते है।
* POST method के द्वारा आप media files भी send कर सकते है, जैसे की images और video आदि।
* POST method में सारा data HTTP protocol के through जाता है। इसलिए data secure होता है।
* जब आप POST method यूज़ करते है तो आपकी information URL में शो नहीं होती है।
POST method यूज़ करने के लिए आप <form> tag के method attribute में POST define करते है। और PHP file में information पाने के लिए $_POST array यूज़ करते है।
Sessions
1. Introduction to PHP sessions
Sessions के पीछे एक बहुत ही सिंपल concept होता है। उदाहरण के लिए आप किसी cyber cafe पर web surfing के लिए जाते है। वँहा पर आपको बताया जाता है की 1 घंटे के लिए आपको 20 रुपए देने होंगे। आप owner को OK कहकर net surf करना शुरू कर देते है। जब आप net surf करना शुरू करते है तब आपका session start हो जाता है। 1 घंटे तक आपका session running state में होता है। 1 घंटे बाद owner आपको बताता है की 1 घंटा पूरा हो चूका है। जैसे ही एक घंटा पूरा होता है आपका session expire हो जाता है। और आप पैसे देकर चले जाते है।
इसी प्रकार जब आप अपने email में login करते है तो आपका session start हो जाता है और जैसे ही आप logout करते है तो आपका session expire हो जाता है। लेकिन sessions का उपयोग इतना ही नहीं होता है। कई बार किसी यूज़र के session को time से भी control किया जाता है। उदाहरण के लिए आप किसी government एग्जाम का form भर रहे है। यदि आप उस form को आधा भरकर कुछ देर के लिए छोड़ दे, तो आपको एक message show होगा की आपका session expired हो चूका है। यदि आप form को एक time limit में नहीं भरते है, तो आपका session expire हो जाता है। और आपको शुरू से form भरना पड़ता है। यँहा पर sessions को website का लोड कम करने के लिए यूज़ किया गया है।
Sessions का एक उपयोग और होता है। जब यूजर आपकी website की surfing करता है तो एक page से दूसरे page पर जाता है। Sessions के माध्यम से data अलग अलग pages पर available हो जाता है। जो data आप चाहते है उसे सारे pages पर पा सकते है। उदाहरण के लिए जब आप online shopping करते है और आपको कोई item पसंद आता है तो आप उसे cart में add कर लेते है और किसी दूसरे item को देखने लग जाते है। ऐसे आपको जो जो पसंद आता जाता है आप उसे cart में add करते जाते है। अंत में जब आप payment करते है तो सभी items आपको एक जगह पर show हो जाते है ऐसा sessions के द्वारा ही किया जाता है।
आपके session को दुबारा start करने के लिए cookies का इस्तेमाल किया जाता है। Cookies में आपकी session ID होती है। जब आप किसी site पर जाते है, तो वो website आपके computer पर cookies के रूप में session ID store कर देती है। जब आप उसी website पर दुबारा जाते है, तो cookies में से उसी ID के साथ session शुरू किया जाता है। यदि session ID stored नहीं है, तो नया session शुरू किया जाता है और उसकी ID cookies के रूप में store कर दी जाती है।
2. Working of PHP sessions
PHP में sessions के साथ काम करना बहुत ही आसान है। इसके लिए PHP कुछ predefined variables और methods provide करती है। session_start() function session को start करने के लिए यूज़ किया जाता है। ये function पहले चेक करता है की कँही कोई session पहले से start तो नहीं है। यदि कोई session नहीं होता है तो ये function नया session start करता है। आपको इस मेथड को अपनी PHP script में सबसे पहले call करना चाहिए।
PHP में sessions के साथ काम करना बहुत ही आसान है। इसके लिए PHP कुछ predefined variables और methods provide करती है। session_start() function session को start करने के लिए यूज़ किया जाता है। ये function पहले चेक करता है की कँही कोई session पहले से start तो नहीं है। यदि कोई session नहीं होता है तो ये function नया session start करता है। आपको इस मेथड को अपनी PHP script में सबसे पहले call करना चाहिए।
एक बार जब session क्रिएट हो जाये तो आप उसमे variables क्रिएट कर सकते है। सभी वेरिएबल्स $_SESSION[] array में automatically store होते है। इस array में आप कोई भी value उसके नाम के साथ store कर सकते है। जैसे की ( $_SESSION[' address ']="India"; ). अब जब तक आपका session start रहेगा तब तक ये value आपके page पर available रहेगी। चाहे आप कितनी भी बार page को refresh कर ले या किसी दूसरे पेज पर जाकर वापस आ जाये। जब session destroy होगा तब ही ये value destroy होगी। ज्यादातर session तब destroy होता है, जब आप browser की window को close कर देते है। तब session भी साथ ही destroy हो जाता है।
आप चाहे तो session को manually भी destroy कर सकते है। इसके लिए PHP एक method provide करती है। session_destroy() मेथड के द्वारा आप session को destroy कर सकते है। ये function session के साथ session variables को भी destroy कर देता है। इस function को PHP script के सबसे आखिर में call करना चाहिए। यदि आप किसी एक session variable को ही destroy करना चाहते है तो इसके लिए भी PHP एक function provide करती है। unset() function के द्वारा आप किसी भी session variable को destroy कर सकते है। इसके लिए आप unset() function को call करते है और उसमे session variable पास करते है। ऐसा आप इस तरह कर सकते है। unset($_SESSION['age']).
ऊपर दिए गए उदाहरण में sessionDemo.html file में session को start किया गया है। इसके बाद session variables के द्वारा कुछ information store की गयी है। इस page से sessionDemo2.html file की link दी गयी है। जब आप इस file पर जाते है तो वँहा भी session start किया गया है। क्योंकि existing session पिछले page का चल रहा है इसलिए नया session create नहीं होगा। इसके बाद पिछले page में जो session information store की गयी थी उसे print करवाया गया है।
Cookies
Introduction to PHP cookies
Cookies पुराने यूज़र को identify करने के लिए यूज़ की जाती है। Cookie एक छोटी सी file होती है। जब भी आप किसी website को visit करते है तो वह website आपके PC पर cookies को store कर देती है। जब कुछ दिनों बाद आप वापस उसी website के लिए browser में request करते है तो request के साथ उस website की cookies भी send की जाती है। Cookies के माध्यम से उस website को पता चल जाता है की आप पहले भी website visit कर चुके है।
1. Cookies mainly 2 तरह की होती है।
* Analytical cookies - इस तरह की cookies के माध्यम से आप किसी पुराने visitor को recognize कर सकते है तो और visitors की संख्या का भी पता लगा सकते है।
* Functional cookies - इस तरह की cookies functional tasks perform करने के लिए यूज़ की जाती है जैसे की user की पुरानी choices आप इस तरह की cookies के द्वारा पता लगा सकते है।
2. Website के द्वारा cookies को कई कारणों से यूज़ किया जाता है।
* User experience को improve करने के लिए।
* User को identify करने के लिए।
* Number of visitors count करने के लिए।
* User की पुरानी choices याद रखने के लिए।
3. PHP में cookies को कुछ functions की मदद से manage किया जाता है।
* setcookie() - ये function cookies create करने के लिए यूज़ किया जाता है।
* isset() - इस function के माध्यम से आप check कर सकते है की cookie पहले से created है या नहीं।
4. Creating cookies
PHP में cookies create करने के लिए आप setcookie() function यूज़ करते है। इस function के 6 parameters होते है। इस function का format निचे दिया जा रहा है।
* name-of-cookie - ये cookie का नाम होता है। ये एक unique नाम होता है। इसी नाम के द्वारा cookie की value access की जाती है।
* value - ये वह value होती है जिसे आप store करना चाहते है। ये value कुछ भी हो सकती है जैसे की कोई string या integer value आदि।
* expire-time - ये वो time होता है जब तक के लिए आप cookie को store करना चाहते है।
* value - ये वह value होती है जिसे आप store करना चाहते है। ये value कुछ भी हो सकती है जैसे की कोई string या integer value आदि।
* expire-time - ये वो time होता है जब तक के लिए आप cookie को store करना चाहते है।
* path - ये उस directory का path होता है जँहा पर आप cookie को store करना चाहते है।
* domain-name - ये domain का नाम होता है। यदि आपकी website बड़ी है तो आप उसका नाम यँहा यूज़ कर सकते है।
* security - यदि आप इसको 1 पर set करते है तो cookie केवल secure HTTPS के माध्यम से ही भेजी जा सकती है।
PHP में cookies create करने का उदाहरण निचे दिया जा रहा है।
5. Accessing cookies
PHP में cookies $_COOKIE[ ] array में store की जाती है। यदि आप किसी एक cookie की value को access करना चाहते है तो $_COOKIE[' cookie-name'] variable के द्वारा access कर सकते है। जैसे की यदि कोई पुराना user वापस आता है तो आप उसके नाम के साथ welcome message print करवा सकते है। एक ध्यान देने योग्य बात ये है की cookies को access करने से पहले आपको पता कर लेना चाहिए की यूज़र की request में कोई cookie send की गयी है या नहीं। इसके लिए आप isset() function यूज़ करते है। पिछले उदाहरण में आपने cookie create की थी अब cookie को access करने का उदाहरण निचे दिया जा रहा है।
6. Deleting cookies
Cookies को इस्तेमाल करने के बाद आप cookies को delete भी कर सकते है। इसके लिए 2 तरीके है।
* setcookie() function को सिर्फ cookie के नाम के साथ call कीजिये।
* setcookie() function को past की किसी date के साथ call कीजिये।
File Handling
Introduction to file handling
ज्यादातर सभी languages files के साथ काम कर सकती है। PHP भी ऐसे कुछ functions provide करती है, जिनकी मदद से आप easily files को handle कर सकते है। Files को handle करने की ये ability PHP को top scripting languages के group में शामिल करती है। सभी web applications database यूज़ नहीं करती है, इसलिए simple data को text files में store करना एक अच्छा विकल्प है। PHP में files के साथ आप 6 तरह की operations perform कर सकते है।
* Opening a file
* Reading a file
* Writing a file
* Appending a file
* Closing a file
* Deleting a file
इन सभी operations को PHP में कैसे perform किया जाता है, आइये देखते है।
1. Opening a file
Files को open करने के लिए PHP fopen() मेथड provide करती है। इस method में 2 argument pass किये जाते है। पहला argument file का नाम होता है, और दूसरा आप उसे किस mode में open करना चाहते है वह mode होता है। PHP file को कई modes में open कर सकते है। ये सभी modes एक character के द्वारा represent किये जाते है। ये सभी modes अलग अलग तरह से operations परफॉर्म करने के लिए यूज़ किये जाते है। इन सभी modes के बारे में निचे दिया जा रहा है।
* Modes --- r
* Explanation -- इस mode से files को सिर्फ read किया जा सकता है।
* Modes --- r+
* Explanation -- इस mode से file को read भी किया जा सकता है और उस file में write भी किया जा सकता है।
* Modes --- w
* Explanation -- इस mode से files में सिर्फ write किया जा सकता है। यदि file पहले से नहीं है तो create हो जाती है।
* Modes --- w+
* Explanation -- इस mode से file के साथ read/write दोनों operation perform किये जा सकते है।
* Modes --- a
* Explanation -- ये mode पुरानी file के content को delete नहीं कर बल्कि उसी में नए content को add कर देता है।
* Modes --- a+
* Explanation -- इस mode में आप file को read भी कर सकते है और उसमे data append भी कर सकते है।
* Modes --- x
* Explanation -- इस mode से आप file में data write कर सकते है। नयी file क्रिएट की जाती है। लेकिन यदि file पहले से है तो error शो होगी।
* Modes --- x+
* Explanation -- इस mode से आप read और write दोनों कर सकते है।
File के साथ किसी भी तरह का operation perform करने के लिए सबसे पहले file को open करना जरुरी होता है। PHP में file open करने का उदाहरण निचे दिया जा रहा है।
इस उदाहरण में हमने file को open किया है। अब आप इस file के साथ जिस mode में आपने इसे open किया है। उसके according कोई भी operation perform कर सकते है।
2. Reading from a file
File को read करने के लिए आपको 2 functions यूज़ करने पड़ते है। इसके लिए आप fread() function यूज़ करते है। इस function में आप file के नाम के साथ उसकी length पास करते है। File की length इसलिए pass की जाती है, ताकि compiler को पता चले की file में content कँहा तक है। इसके लिए आप filesize() मेथड यूज़ करते है। इस method में आप file का नाम pass करते है। PHP में file read करने का उदाहरण निचे दिया जा रहा है।
3. Writing to a file
किसी भी file में data store करने के लिए आप fwrite() function यूज़ करते है। इस function में file pointer और data pass किया जाता है। File pointer वह variable होता है, जिसमे आप file को open करके point करते है। PHP में data write करने का उदाहरण निचे दिया जा रहा है।
4. Appending to a file
जब भी आप किसी existing file में data write करते है, तो उस file का previous data delete हो जाता है। लेकिन यदि आप चाहे तो previous data को delete ना करते हुए उसी के end में new data को add कर सकते है। इसके लिए आपको file को a mode के साथ open करना होता है और उसमे fwrite() function के द्वारा data आप write करते है। इसका उदाहरण निचे दिया जा रहा है।
जब भी आप किसी existing file में data write करते है, तो उस file का previous data delete हो जाता है। लेकिन यदि आप चाहे तो previous data को delete ना करते हुए उसी के end में new data को add कर सकते है। इसके लिए आपको file को a mode के साथ open करना होता है और उसमे fwrite() function के द्वारा data आप write करते है। इसका उदाहरण निचे दिया जा रहा है।
5. Closing a file
Operations complete होने के बाद आपको file stream close कर देनी चाहिए। इसके लिए PHP fclose() method provide करती है। इस method में file pointer pass किया जाता है। इसका उदाहरण निचे दिया जा रहा है।
6. Deleting a file
काम पूरा होने के बाद यदि आप file को delete करना चाहते है तो इसके लिए PHP unlink method provide करती है। इसका उदाहरण निचे दिया जा रहा है।
Database Handling
* PHP database handling (MySQL)
* Introduction to PHP database handling in Hindi
* PHP functions for database handling in Hindi
Example
Introduction to PHP database handling
अपनी web application का data किसी database में save करना सबसे appropriate रहता है। Database में आपका data secure रहता है। किसी भी database में data normalized form में रहता है। Database चाहे कितना ही बड़ा क्यों ना हो उसमे आप data को बहुत fast access कर सकते है। PHP के साथ सबसे ज्यादा यूज़ होने वाला database MySQL है। MySQL एक open source database है। ये सभी को freely available है। MySQL दुनिया का सबसे ज्यादा यूज़ होने वाला database है। MySQL data के साथ operations perform करने के लिए SQL (Structured Query Language) यूज़ करता है।
MySQL के साथ काम करने के लिए PHP आपको कुछ predefined function provide करती है। जिन्हे यूज़ करके आप आसानी से MySQL के साथ काम कर सकते है। इन functions के बारे में निचे दिया जा रहा है।
1. mysql_connect()
ये function mysql database से connect करने के लिए यूज़ किया जाता है। Database के साथ काम करने के लिए सबसे पहले आप इसी function को call करेंगे। इस method में तीन arguments पास किये जाते है। पहला argument localhost का port no होता है। दूसरा argument database का user name होता है और तीसरा argument database का password होता है। इस function की value एक variable में store की जाती है। ये function database का pointer return करता है। इसका उदाहरण निचे दिया जा रहा है।
2. mysql_select_db()
जिस database के साथ आप काम करना चाहते है, वो database आप इस function के द्वारा select करते है। इस function में 2 argument pass किये जाते है। पहला argument database का नाम होता है। और दूसरा argument database connection variable होता है। ये method कुछ भी return नहीं करता है। इसका उदाहरण निचे दिया जा रहा है।
3. mysql_query()
इस function में आप mysql की query pass करते है। ये function उस query को database के against execute करता है और उस query का result एक array के रूप में return करता है। इसलिए आप जब इस function को call करते है तो एक variable में इसकी value store करवाते है। जैसे आप mysql में query लिखते है वैसे ही इस function में भी लिखते है। Query आप inverted commas के अंदर लिखते है। इसका उदाहरण निचे दिया जा रहा है।
4. mysql_result()
ये function query का result शो करता है। इस function को आप echo statement में यूज़ कर सकते है। ये function एक बार में एक ही element शो कर सकता है। इस function में 3 argument pass किये जाते है। पहला argument वह variable होता है जिसमे आप अपनी query का result store कर सकते है। दूसरे argument की तरह जिस row से आप data शो करना चाहते है वो row number पास करते है। तीसरे argument की तरह जिस column का data आप show करना चाहते है उसका नाम pass करते है। इसका उदाहरण निचे दिया गया है।
ऊपर दिए गए उदाहरण में 2nd row के salary column का data शो किया गया है।
5. mysql_fetch_array()
एक एक value शो करने की बजाय आप एक साथ भी अपनी query के result की एक पूरी row show कर सकते है। इसके लिए आप mysql_fetch_array() function यूज़ करते है। इस function में query variable argument की तरह pass किया जाता है। इस function को while loop के साथ यूज़ करके अपनी query का पूरा result आप show कर सकते है। इसका उदाहरण निचे दिया जा रहा है।
ऊपर दिए गए उदाहरण में mysql_fetch_array() को call किया गया है और उसका result एक variable में store किया गया है। ये function results में से array fetch करके return करता है। इसके बाद उस variable पर loop चलाया गया है। ये loop तब तक चलता है जब तक की array में कोई value है। जब array में कोई value नहीं होती है तो ये function false return करता है और आपका loop terminate हो जाता है।
Example - Submitting HTML form data to database using PHP

No comments: