Browsing all articles in पीएचपी
Mar
13

पीएचपी ५.४ में नया क्या

पीएचपी का ५.४ संस्करण जारी हो चुका है। आइए जानते हैं कि इसमें क्या नया है: read more

Mar
26

कोड इग्नाइटर में जेंड फ्रेमवर्क

जेंड फ्रेमवर्क की सबसे अच्छी बात यह है कि इसके घटकों को हम अलग से इस्तेमाल कर सकते हैं। यदि आप कोड इग्नाइटर फ्रेमवर्क का इस्तेमाल करते हैं और जेंड फ्रेमवर्क के घटकों को भी प्रयोग में लेना चाहते हैं तो यह संभव है। आइए देखते हैं कैसे?

१) दोनो फ्रेमवर्क डाउनलोड करें:

http://codeigniter.com/

http://framework.zend.com/

२) सर्वर में उपयुक्त स्थान पर दोनों को रख लें।

३) अब जेंड फ्रेमवर्क की पूरी क्लास लाइब्रेरी को कोड इग्नाइटर की application/libraries वाले फोल्डर में डाल दें। कुछ इस प्रकार से कि Form.php libraries/Zend/Form.php के स्थान पर रहे।

४) libraries वाले फोल्डर में एक Zend.php नाम की फाइल बनाएं और उसमें निम्नलिखित कोड लिख दें:

class CI_Zend
{

	function __construct()
	{

		ini_set('include_path',
		ini_get('include_path') . PATH_SEPARATOR . APPPATH . 'libraries');

	}

	function load($class)
	{
		require_once (string) $class . EXT;
		log_message('debug', "Zend Class $class Loaded");
	}

}

?>

४) अब application/config/autoload.php में libraries वाली एरे में “zend” नाम जोड़ दें।

बधाई हो आपने सफलतापूर्वक जेंड फ्रेमवर्क को कोड इग्नाइटर से जोड़ लिया।

अब जब भी आपको किसी जेंड फ्रेमवर्क क्लास का इस्तेमाल करना हो तो ऐसा लिखें:

$this->zend->load(“Zend/Form”);

$form =  new Zend_Form();

Mar
15

वर्डप्रेस को किसी अन्य डोमेन पर स्थानांतरित करना

कुछ समय पहले अंतर्जाल डॉट इन पर मेरे दो चिट्ठे चलते थे: तकनीक और वेबविकास। इन दोनों चिट्ठों के लिए अलग अलग वर्ड्प्रेस स्थापित किया हुआ था। फिर एक वर्डप्रेस एक नया समाचार आया कि WordPress MU सामान्य वर्डप्रेस में ही मिल जाएगा। उस समय तो मैंने MU सक्षम नही किया था पर अभी हाल ही में मैंने ज्ञान गंगा नाम का एक चिट्ठा शुरू करना था। तो सोचा कि क्यों न अब से तीनों चिट्ठे वर्डप्रेस की एक ही प्रति में चलाएं जाएं। लोकल सर्वर में मैंने वर्डप्रेस स्थापित किया और उसमें MU सक्षम कर दिया। अब अपने दोनों चिट्ठों की प्रविष्टियों को Tools > Import से आयात किया। uploads डायरेक्ट्री में चिट्ठावार फाइलों को व्यवस्थित किया।

अब बारी थी इसे वेब सर्वर में ले जाने की। एफटीपी से सबकुछ अपलोड कर दिया और डाटाबेस भी अपलोड कर दिया। अभी वर्डप्रेस में डोमेन और साइटों के नाम अद्यतन करने शेष थे। मसलन उनके नाम localhost से शुरू हो रहे थे उन्हे blogs.antarjaal.in करना था। डाटाबेस में कई जगहों पर तो कर दिया पर शायद कुछ जगहों पर छूट गया। काम चलने लगा था तो तीसरा चिट्ठा शुरू कर दिया ज्ञान गंगा। अभी हाल ही में वर्डप्रेस ३.० से वर्डप्रेस ३.१ को अपग्रेड किया तो दिक्कत फिर पैदा हो गई। कई कड़ियां काम करना बंद कर दी। फिर स्टैकओवरफ्लो में सहायता मांगी तो काफी उपयोगी जानकारी हाथ लगी। वह ये कि…

सामान्य वर्डप्रेस की तुलना में वर्डप्रेस मल्टीसाइट को स्थानांतरित करना अधिक जटिल काम है। क्योंकि इसमें ज्यादा चीजों को बदलना पड़ता है। आपको .htaccess समेत निम्नलिखित चीजों में परिवर्तन करना पड़ सकता है:

wp-config में DOMAIN_CURRENT_SITE में परिभाषित किया गया डोमेन यूआरएल

डाटाबेस में निम्नलिखित टेबलों में परिवर्तन करना पड़ेगा:

  • wp_options में siteurl
  • wp_options में home
  • wp_options में fileupload_url
  • wp_blogs field name में domain
  • wp_site में domain
  • wp_sitemeta में siteurl
  • wp_x_options में siteurl
  • wp_x_options में home
  • wp_x_options में fileupload_url

[उपरोक्त तीन बिंदुओं में x ब्लाग आईडी है]

  • wp_usermeta -  के अंतर्गत source_domain

उपरोक्त परिवर्तन करने के लिए पीएचपीमाईएडमिन या किसी अन्य माईएसक्यूएअल जीयूआई का प्रयोग कर सकते हैं। वैसे सबसे अच्छा तरीका यही है माईएसक्यूएल के REPLACE फंग्शन की सहायता से प्रत्येक टेबल में पुराने डोमेन नाम को नए डोमेन नाम से बदल दें।

update [table_name] set [field_name] = replace([field_name],’[string_to_find]‘,’[string_to_replace]‘);
Feb
4

अपनी उबुन्टू डेस्कटॉप में लैम्प सर्वर स्थापित करें [एपाचे, माईएसक्यूएल, पीएचपी]

लैम्प सर्वर स्थापित करना

यदि आप उबुन्टू लिनक्स मशीन पर वेब विकास का कार्य आरंभ करना चाहते हैं या अपने पीसी को सर्वर की तरह उपयोग करना चाहते हैं तो आपको उसमें एपाचे, माईएसक्यूएल तथा पीएचपी स्थापित कर लेना चाहिए।

१) उबुन्टू में लैम्प सर्वर स्थापित करना बहुत ही आसान है। बस टर्मिनल के जरिए निम्नलिखित आदेश दीजिए:

sudo apt-get install lamp-server^

२) इस आदेश को देने के पश्चात लैम्प सर्वर के लिए आवश्यक कई पैकेज स्वत: ही चुन लिए जाते हैं और आपसे उन्हे डाउनलोड करने की अनुमति मांगी जाती है। इसमें Y लिखकर इंटर कुंजी दबा दें।

३) स्थापना प्रक्रिया के दौरान आपको माईएसक्यूएल सर्वर का कूटशब्द/पासवर्ड निर्धारित करने को कहा जाता है। उसे लिखें और आगे बढ़ें।

४) स्थापना प्रक्रिया के पूरे होने के पश्चात वेब ब्राउज़र खोलें और http://localhost/ पते को खोलें। यदि आपको कुछ ऐसा दिखाई देता है तो इसका मतलब है कि आपका सर्वर सफलतापूर्वक स्थापित कर दिया गया है।

यह पृष्ठ /var/www/ नामक डायरेक्ट्री में स्थित है। यही फोल्डर आपके सर्वर की मुख्य डायरेक्ट्री है।

पीएचपी माईएडमिन स्थापित करना:

माईएसक्यूएल डाटाबेसों में आसानी काम करने के लिए पीएचपीमाईएडमिन स्थापित कर लेना अधिक अच्छा रहता है।

१) पीएचपीमाईएडमिन स्थापित करने के लिए टर्मिनल से निम्नलिखित आदेश दें:

sudo apt-get install phpmyadmin

२) स्थापना प्रक्रिया के दौरान आपसे पूछा जाता है कि आप किस सर्वर पर पीएचपीमाईएडमिन स्थापित करना चाहेंगे। हमनें अभी हाल ही में एपाचे स्थापित किया है तो उसे चुनें और आगे बढ़ें।

३) स्वयं पीएचपीमाईएडमिन के पूरे अंगों के सही ढंग से काम करने के लिए एक डाटाबेस स्थापित करना आवश्यक होता है। इस चरण में आपसे पूछा जाता है कि क्या आप उसके लिए पीएचपीमाईएडमिन को कांफिगर करना चाहते हैं? यहां Yes चुनकर आगे बढ़ें।

४) अब डाटाबेस स्थापित करने के लिए आपसे माईएसक्यूएल के root उपयोगकर्ता का कूटशब्द/पासवर्ड मांगा जाता है। उसे भरें और आगे बढ़ें।

५) अब एक पासवर्ड निर्धारित करने को कहा जाता है जिससे पीएचपीमाईएडमिन डाटाबेस सर्वर के साथ रजिस्टर हो सके। इसे निर्धारित करें। और आगे बढ़ें।

५) पीएचपीमाईएडमिन की स्थापना प्रक्रिया पूरी होने के पश्चात ब्राउजर के जरिए इस पते को खोलें:

http://localhost/phpmyadmin

यदि आपको ऐसा कुछ दिखाई देता है तो इसका मतलब है कि पीएचपीमाईएडमिन सफलतापूर्वक स्थापित हो चुका है। अब आप इसमें अपने माईएसक्यूएल उपयोगकर्ता नाम तथा कूटशब्द को लिखकर सत्रारंभ कर सकते हैं।

इस प्रकार हमनें लिनक्स में लैम्प सर्वर तथा पीएचपी माईएडमिन स्थापित करना सीखा। किन्तु अभी भी एक दिक्कत है। यदि आप /var/www में कुछ डालने की कोशिश करेंगे तो वह नही होगा।

आपको यह त्रुटि संदेश मिलेगा:

Error moving file: Permission denied

इसे ठीक करने के लिए टर्मिनल से निम्नलिखित आदेश दें:

sudo chown ankur /var/www/

यहां ankur की जगह अपना उपयोगकर्ता नाम लिखें।

अब आप /var/www में फाइलें डाल सकेंगे।

Dec
22

पीएचपी स्क्रिप्ट के जरिए किसी फाइल को उपलब्ध कराना

किसी चित्र अथवा फाइल को पीएचपी स्क्रिप्ट के द्वारा उपलब्ध कराने की जरुरत कब पड़ती है?

मान लीजिए कि आप कुछ चित्रों अथवा फाइलों को कुछ विशेष उपयोगकर्ताओं को ही दिखाना चाहते हैं। आप चाहते हैं कि शेष लोग उस फाइल तक न पहुंच पाएं तो ऐसी स्थिति में उस फाइल को पीएचपी स्क्रिप्ट के जरिए उपलब्ध कराना अच्छा रहता है। यहां हम एक जेपीईजी चित्र फाइल का उदाहरण ले रहे हैं।

header(‘Content-type: image/jpeg’);
$file = “/path/to/file.jpg”;
if(file_exists($file)){
readfile($file);
}

उपरोक्त उदाहरण में header और readfile फंग्शन ही प्रमुख हैं। उपरोक्त कोड जिस पीएचपी फाइल में जाएगा वह पीएचपी फाइल एक चित्र वाली जेपीईजी फाइल की तरह से कार्य करेगी।

header फंग्शन यह निश्चित करता है कि जो आंकड़े ब्राउज़र को भेजे जा रहे हैं वे किस संरूप के हैं और उन्हे ब्राउज़र किस संरूप में समझे। ध्यान रहे कि इस फंग्शन के पहले किसी अक्षर को echo इत्यादि नही करना चाहिए अन्यथा त्रुटि मिलेगी।

readfile सीधे किसी फाइल को पढ़ता है। ध्यान रखें कि readfile में फाइल का पूरा पाथ बताना पड़ता है।

यह हेडर तो जेपीईजी फाइल के लिए था। अन्य कुछ प्रकारों के लिए इस प्रकार है:

Atom

header('Content-type: application/atom+xml');

CSS

header('Content-type: text/css');

Javascript

header('Content-type: text/javascript');

JPEG Image

header('Content-type: image/jpeg');

JSON

header('Content-type: application/json');

PDF

header('Content-type: application/pdf');

RSS

header('Content-Type: application/rss+xml; charset=ISO-8859-1');

Text (Plain)

header('Content-type: text/plain');

XML

header('Content-type: text/xml');
Dec
13

पीएचपी में दिनांकों के साथ एक गड़बड़

आज मैं पीएचपी DateTime क्लास का प्रयोग कर रहा था। तब उसमें(पीएचपी में) एक गड़बड़ी का पता चला।

मान लीजिए कि हम इस प्रकार का कोड लिखते हैं:

$date = new DateTime(’01 December, 1950′);
echo $date->format(‘Y-m-d’);

तो इसका परिणाम आएगा

2010-12-01

यानि कि हमने वर्ष भरा है १९५०, लेकिन परिणाम में वर्ष आ रहा है २०१०। यह गड़बड़ १९६० से पहले के वर्षों में होती है और उनका सही वर्ष नही आता है।

यदि हम इस दिनांक को इस प्रकार लिख दें

$date = new DateTime(‘December 01, 1950′);
echo $date->format(‘Y-m-d’);

तो परिणाम एकदम सही यानि कि 1950-12-01 आया।

संभवत: इसका कारण पीएचपी की कोई त्रुटि है। इसके विषय में मुझे स्टाक ओवर फ्लो में पता चला।

http://stackoverflow.com/questions/4430478/php-datetime-object-1960-year-limitation

यह गड़बड़ी मेरे पीएचपी के संस्करण 5.2.14 मे आई। संभवत: नए संस्करणों में ये समस्या नही आएगी।

यदि आपको भी इस समस्या का सामना करना पड़ा हो तो कृपया ऊपर वाला समधान उपयोग में लाकर देखें।

Nov
9

वर्डप्रेस ३ के "पेजों" में "excerpt" कैसे सक्षम करें।

वर्डप्रेस के “posts” में “excerpt” की सुविधा रहती है किन्तु “pages” में नही रहती है। यदि आप इसे उसमें भी सक्षम करना चाहते हैं तो अपनी टेम्प्लेट की functions.php फाइल में निम्नलिखित कोड लिख दें:

add_post_type_support( 'page', 'excerpt' );

अब इस थीम को सक्रिय कर दें। जब आप नया “पेज” जोड़ेंगे या पुराना “संपादित” करेंगे तो उसमें “Excerpt” का डिब्बा भी दिखाई देगा।

Nov
8

वर्डप्रेस की प्रविष्टियों में तालिकाएं कैसे जोड़ें?

वर्डप्रेस में टिनीएमसीई संपादित्र/एडीटर होता है, जिसमें तालिकाएँ बनाने की सुविधा को अक्षम किया गया होता है। इतनी आवश्यक वस्तु को वर्डप्रेस में अक्षम करने का कोई कारण समझ नही आता है। खैर, एक प्लग इन के द्वारा आप तालिकाएँ बनाने की सुविधा को वर्डप्रेस में आसानी से जोड़ सकते हैं।

इस प्लग इन का नाम है : एमसीई टेबल बटन्स

और इसे आप यहां से डाउनलोड कर सकते हैं: http://wordpress.org/extend/plugins/mce-table-buttons/

इस प्लग इन को स्थापित करने के बाद संपादित्र में तालिकाएँ बनाने की सुविधा जुड़ जाएगी।

Oct
1

पीएचपी मैनेजर के जरिए आईआईएस में पीएचपी के सेटिंग निर्धारित करें

पीएचपी मैनेजर आईआईएस ७ के लिए एक औजार है जिसके जरिए हम पीएचपी के सेटिंगों को निर्धारित कर सकते हैं। पीएचपी मैनेजर के जरिए हम …

  • पीएचपी को आईआईएस में पंजीकृत कर सकते हैं
  • एक ही सर्वर में एक से अधिक पीएचपी के संस्करण चला सकते हैं
  • पीएचपी के सेंटिंस, एक्सटेंशन इत्यादि भी निर्धारित कर सकते हैं

यह एक मुफ्त का औजार है। इससे आपको पीएचपी की आईएनआई फाइलों के लिए जीयूआई मिल जाता है जिससे काफी आसानी होती है। डाउनलोड हेतु इसके x86 तथा x64 दो संस्करण उपलब्ध हैं। आप अपने विंडोज़ के संस्करण के अनुसार उनका चुनाव कर सकते हैं:

डाउनलोड का पता है : http://phpmanager.codeplex.com/releases/view/53121