PHP fopen() ਫੰਕਸ਼ਨ
ਵਿਆਖਿਆ ਅਤੇ ਵਰਤੋਂ
fopen() ਫੰਕਸ਼ਨ ਫਾਇਲ ਜਾਂ URL ਖੋਲ੍ਹਦਾ ਹੈ。
ਜੇਕਰ ਖੋਲ੍ਹਣਾ ਫੇਲ ਹੁੰਦਾ ਹੈ ਤਾਂ ਇਹ ਫੰਕਸ਼ਨ FALSE ਵਾਪਸ ਦੇਵੇਗਾ。
ਸਫ਼ਟਿਕਰਣ
fopen(filename,mode,include_path,context)
ਪ੍ਰਮਾਣੂ | ਵਰਣਨ |
---|---|
filename | ਲਾਜ਼ਮੀ। ਖੋਲ੍ਹਣੀ ਹੋਣ ਵਾਲੀ ਫਾਇਲ ਜਾਂ URL ਨੂੰ ਨਿਰਧਾਰਿਤ ਕਰੋ。 |
mode | ਲਾਜ਼ਮੀ। ਫਾਇਲ/ਸਟਰੀਮ ਨੂੰ ਖੋਲ੍ਹਣ ਲਈ ਦੇਣ ਵਾਲੀ ਜ਼ਰੂਰਤ ਵਾਲੀ ਸੰਖਿਆ ਨੂੰ ਨਿਰਧਾਰਿਤ ਕਰੋ। ਸੰਭਾਵਿਤ ਮੁੱਲ ਹੇਠ ਦਿੱਤੇ ਹਨ。 |
include_path | ਵਿਕਲਪਿਤ। ਜੇਕਰ ਵੀ include_path ਵਿੱਚ ਫਾਇਲ ਦੀ ਖੋਜ ਕਰਨੀ ਹੈ ਤਾਂ ਇਹ ਪ੍ਰਮਾਣੂ 1 ਜਾਂ TRUE ਸੈਟ ਕਰ ਸਕਦੇ ਹਨ。 |
context | ਵਿਕਲਪਿਤ। ਫਾਇਲ ਹੈਂਡਲ ਦੇ ਵਾਤਾਵਰਣ ਨੂੰ ਨਿਰਧਾਰਿਤ ਕਰਨ ਲਈ। Context ਇੱਕ ਸਮੂਹ ਹੈ ਜੋ ਸਟਰੀਮ ਦਾ ਵਿਵਹਾਰ ਬਦਲ ਸਕਦੀ ਹੈ。 |
mode ਪ੍ਰਮਾਣੂ ਦੀ ਸੰਭਾਵਿਤ ਮੁੱਲ
mode | ਦਿਸ਼ਾ ਦਿੰਦਾ ਹੈ |
---|---|
"r" | ਸਿਰਫ ਪੜ੍ਹਨ ਵਾਲੇ ਤੌਰ 'ਤੇ ਖੋਲ੍ਹੋ ਅਤੇ ਫਾਇਲ ਪਾਇੰਟਰ ਫਾਇਲ ਦੇ ਮੁੱਖ ਵੱਲ ਲਿਜਾਓ。 |
"r+" | ਪੜ੍ਹਨ ਅਤੇ ਲਿਖਣ ਵਾਲੇ ਤੌਰ 'ਤੇ ਖੋਲ੍ਹੋ ਅਤੇ ਫਾਇਲ ਪਾਇੰਟਰ ਫਾਇਲ ਦੇ ਮੁੱਖ ਵੱਲ ਲਿਜਾਓ。 |
"w" | ਲਿਖਣ ਵਾਲੇ ਤੌਰ 'ਤੇ ਖੋਲ੍ਹੋ ਅਤੇ ਫਾਇਲ ਪਾਇੰਟਰ ਫਾਇਲ ਦੇ ਮੁੱਖ ਵੱਲ ਲਿਜਾਓ ਅਤੇ ਫਾਇਲ ਦਾ ਅਕਾਰ ਛੋਟੇ ਤੋਂ ਕੀਤਾ ਜਾਵੇਗਾ। ਜੇਕਰ ਫਾਇਲ ਨਹੀਂ ਹੈ ਤਾਂ ਇਸ ਨੂੰ ਬਣਾਓ ਦੇ ਪ੍ਰਯਤਨ ਕਰੋ。 |
"w+" | ਪੜ੍ਹਨ ਅਤੇ ਲਿਖਣ ਵਾਲੇ ਤੌਰ 'ਤੇ ਖੋਲ੍ਹੋ ਅਤੇ ਫਾਇਲ ਪਾਇੰਟਰ ਫਾਇਲ ਦੇ ਮੁੱਖ ਵੱਲ ਲਿਜਾਓ ਅਤੇ ਫਾਇਲ ਦਾ ਅਕਾਰ ਛੋਟੇ ਤੋਂ ਕੀਤਾ ਜਾਵੇਗਾ। ਜੇਕਰ ਫਾਇਲ ਨਹੀਂ ਹੈ ਤਾਂ ਇਸ ਨੂੰ ਬਣਾਓ ਦੇ ਪ੍ਰਯਤਨ ਕਰੋ。 |
"a" | ਲਿਖਣ ਵਾਲੇ ਤੌਰ 'ਤੇ ਖੋਲ੍ਹੋ ਅਤੇ ਫਾਇਲ ਪਾਇੰਟਰ ਫਾਇਲ ਦੇ ਅੰਤ ਵੱਲ ਲਿਜਾਓ। ਜੇਕਰ ਫਾਇਲ ਨਹੀਂ ਹੈ ਤਾਂ ਇਸ ਨੂੰ ਬਣਾਓ ਦੇ ਪ੍ਰਯਤਨ ਕਰੋ。 |
"a+" | ਪੜ੍ਹਨ ਅਤੇ ਲਿਖਣ ਵਾਲੇ ਤੌਰ 'ਤੇ ਖੋਲ੍ਹੋ ਅਤੇ ਫਾਇਲ ਪਾਇੰਟਰ ਫਾਇਲ ਦੇ ਅੰਤ ਵੱਲ ਲਿਜਾਓ। ਜੇਕਰ ਫਾਇਲ ਨਹੀਂ ਹੈ ਤਾਂ ਇਸ ਨੂੰ ਬਣਾਓ ਦੇ ਪ੍ਰਯਤਨ ਕਰੋ。 |
"x" |
ਫਾਇਲ ਬਣਾਓ ਅਤੇ ਲਿਖਣ ਵਾਲੇ ਤੌਰ 'ਤੇ ਖੋਲ੍ਹੋ ਅਤੇ ਫਾਇਲ ਪਾਇੰਟਰ ਫਾਇਲ ਦੇ ਮੁੱਖ ਵੱਲ ਲਿਜਾਓ। ਜੇਕਰ ਫਾਇਲ ਪਹਿਲਾਂ ਹੋਈ ਹੈ ਤਾਂ fopen() ਕਾਲ ਫੇਲ ਹੋਵੇਗਾ ਅਤੇ FALSE ਵਾਪਸ ਦੇਵੇਗਾ, ਅਤੇ ਇੱਕ E_WARNING ਪੱਧਰ ਦਾ ਮਹਾਤਮਾ ਪੈਦਾ ਹੋਵੇਗਾ। ਜੇਕਰ ਫਾਇਲ ਨਹੀਂ ਹੈ ਤਾਂ ਇਸ ਨੂੰ ਬਣਾਓ ਦੇ ਪ੍ਰਯਤਨ ਕਰੋ。 ਇਹ ਵਿਕਲਪ PHP 4.3.2 ਅਤੇ ਉਸ ਤੋਂ ਬਾਅਦ ਦੀਆਂ ਸ਼ਕਤੀਆਂ ਦੁਆਰਾ ਸਮਰਥਿਤ ਹੈ ਅਤੇ ਸਿਰਫ ਸਥਾਨਕ ਫਾਈਲਾਂ ਵਿੱਚ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ。 |
"x+" |
ਇਹ ਵਿਕਲਪ PHP 4.3.2 ਅਤੇ ਉਸ ਤੋਂ ਬਾਅਦ ਦੀਆਂ ਸ਼ਕਤੀਆਂ ਦੁਆਰਾ ਸਮਰਥਿਤ ਹੈ ਅਤੇ ਸਿਰਫ ਸਥਾਨਕ ਫਾਈਲਾਂ ਵਿੱਚ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ。 |
ਦਿਸ਼ਾ ਦਿੰਦਾ ਹੈ
fopen() ਨੂੰ filename ਨਾਮ ਸੰਸਾਧਨ ਨੂੰ ਇੱਕ ਸਟ੍ਰੀਮ 'ਤੇ ਬਾਂਧ ਦਿੱਤਾ ਜਾਵੇਗਾ। ਜੇਕਰ filename ਹੈ "scheme://...ਦੇ ਫਾਰਮੈਟ ਵਿੱਚ, ਤਾਂ ਇਹ URL ਵਜੋਂ ਮੰਨਿਆ ਜਾਵੇਗਾ, PHP ਇਸ ਮੋਡ ਲਈ ਪ੍ਰੋਟੋਕਲ ਹੈਂਡਲਰ (ਜਿਸ ਨੂੰ ਪੈਕੇਜਡ ਪ੍ਰੋਟੋਕਲ ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ) ਲੱਭੇਗਾ ਅਤੇ ਇਸ ਮੋਡ ਨੂੰ ਹੈਂਡਲ ਕਰੇਗਾ। ਜੇਕਰ ਇਹ ਪ੍ਰੋਟੋਕਲ ਪੈਕੇਜਡ ਪ੍ਰੋਟੋਕਲ ਨਹੀਂ ਰਜਿਸਟਰ ਕੀਤਾ ਗਿਆ ਹੈ, ਤਾਂ PHP ਇੱਕ ਸੁਝਾਅ ਸੁਨਾਉਣ ਵਾਲਾ ਸੁਨੇਹਾ ਜਾਰੀ ਕਰੇਗਾ ਅਤੇ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਸੰਭਾਵਿਤ ਸਮੱਸਿਆਵਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਸੁਨੇਹਾ ਦੇਣ ਵਾਲਾ ਸੁਨੇਹਾ ਜਾਰੀ ਕਰੇਗਾ。 filename ਇੱਕ ਆਮ ਫਾਈਲ ਨਾਮ ਦੇ ਰੂਪ ਵਿੱਚ ਅੱਗੇ ਵਧਾਇਆ ਜਾਵੇਗਾ。
ਮੰਨਿਆ ਗਿਆ ਹੈ ਕਿ filename ਇੱਕ ਸਥਾਨਕ ਫਾਈਲ ਨੂੰ ਨਿਰਦਿਸ਼ਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਤਾਂ ਫਾਈਲ ਉੱਤੇ ਇੱਕ ਸਟ੍ਰੀਮ ਖੋਲ੍ਹਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਜਾਵੇਗੀ। ਫਾਈਲ ਨੂੰ PHP ਵੱਲੋਂ ਪਹੁੰਚਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ, ਇਸ ਲਈ ਫਾਈਲ ਪਹੁੰਚ ਅਧਿਕਾਰਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ। ਸੁਰੱਖਿਆ ਮੋਡ ਜਾਂ open_basedir ਸਰਗਰਮ ਹੋਣ ਤਾਂ ਹੋਰ ਸੀਮਾਵਾਂ ਲਾਗੂ ਹੋਣਗੀਆਂ。
ਮੰਨਿਆ ਗਿਆ ਹੈ ਕਿ filename ਇੱਕ ਰਜਿਸਟਰਡ ਪ੍ਰੋਟੋਕਲ ਵਜੋਂ ਨਿਰਦਿਸ਼ਟ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਇਹ ਪ੍ਰੋਟੋਕਲ ਇੱਕ ਨੈੱਟਵਰਕ URL ਦੇ ਰੂਪ ਵਿੱਚ ਰਜਿਸਟਰ ਕੀਤਾ ਗਿਆ ਹੈ, PHP ਇਹ ਚੈਕ ਕਰੇਗਾ ਅਤੇ allow_url_fopen ਨੂੰ ਸਰਗਰਮ ਕਰਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੇਗਾ। ਜੇਕਰ ਇਹ ਬੰਦ ਕੀਤਾ ਗਿਆ ਹੈ, ਤਾਂ PHP ਇੱਕ ਚਿਤਾਵਨੀ ਜਾਰੀ ਕਰੇਗਾ ਅਤੇ fopen() ਦੀ ਬੁਲਾਉਣ ਫੇਲੇਗੀ。
ਨੂੰ context ਦਾ ਸਮਰਥਨ PHP 5.0.0 ਵਿੱਚ ਜੋੜਿਆ ਗਿਆ ਸੀ。
ਸੁਝਾਅ ਅਤੇ ਨੋਟਸ
تعریف:ਵੱਖ-ਵੱਖ ਓਐੱਸ ਪਰਿਵਾਰਾਂ ਕੋਲ ਵੱਖ-ਵੱਖ ਲਾਈਨ ਐਂਡ ਸਿਗਨਲ ਪ੍ਰਣਾਲੀਆਂ ਹਨ। ਇੱਕ ਟੈਕਸਟ ਫਾਈਲ ਲਿਖਣ ਅਤੇ ਇੱਕ ਨਵੀਂ ਲਾਈਨ ਜੋੜਣ ਦੇ ਸਮੇਂ, ਓਐੱਸ ਦੇ ਨਾਲ ਲਾਈਨ ਐਂਡ ਸਿਗਨਲ ਵਰਤਣਾ ਚਾਹੀਦਾ ਹੈ। Unix ਅਧਾਰਤ ਸਿਸਟਮ \n ਨੂੰ ਲਾਈਨ ਐਂਡ ਸਿਗਨਲ ਵਜੋਂ ਵਰਤਦੇ ਹਨ, Windows ਅਧਾਰਤ ਸਿਸਟਮ \r\n ਨੂੰ ਵਰਤਦੇ ਹਨ, Macintosh ਅਧਾਰਤ ਸਿਸਟਮ \r ਨੂੰ ਵਰਤਦੇ ਹਨ。
Windows ਵਿੱਚ ਇੱਕ ਟੈਕਸਟ ਟਰਾਂਸਫਾਰਮ ਟੈਗ (\
مقابلہ ماڈل کا انتخاب اس پی اے آئی اور استعمال کی جا رہی پی ھی پی ورژن پر منحصر ہوتا ہے، لہذا پرنستوپنی کی فکر سے، بہت مشورہ دیتا ہوں کہ آپ ہمیشہ مناسب نشان استعمال کریں۔ اگر آپ صرف پورا ٹیکسٹ فائل کا استعمال کر رہے ہیں اور اسکریپت میں \n کا استعمال کر رہے ہیں اور اس کا استعمال دوسرے ایپلی کیشن مثلاً ناٹپید کے ذریعے کیا جانا چاہئے تو میڈ میں "ت" استعمال کریں، سارے دیگر صورتوں میں "ب" استعمال کریں۔
دوئینائٹ فائلوں پر عمل کرتے وقت اگر "ب" نشان نہیں دیا جاتا تو کچھ عجیب مسئلے آسکتے ہیں، جس میں بجائی میلکوئل فائل اور \r\n چارتر کے بارے میں عجیب مسئلے شامل ہیں。
تعریف:پرنستوپنی کی فکر سے، بہت مشورہ دیتا ہوں کہ آپ fopen() کا استعمال کرتے وقت ہمیشہ "ب" نشان استعمال کریں。
تعریف:دوبارہ، پرنستوپنی کی فکر سے، بہت مشورہ دیتا ہوں کہ آپ ان کدوں کو دوبارہ لکھیں جو "ت" ماڈل پر منحصر ہیں اور صحیح سطر خاتمے کو استعمال کریں اور ان کو "ب" ماڈل میں تبدیل کریں。
مثال
<?php $file = fopen("test.txt","r"); $file = fopen("/home/test/test.txt","r"); $file = fopen("/home/test/test.gif","wb"); $file = fopen("http://www.example.com/","r"); $file = fopen("ftp://user:password@example.com/test.txt","w"); ?>