فونکشن fgetcsv() PHP
تعریف و استفاده
فونکشن fgetcsv() یک خط از اشارهگر فایل را میخواند و میدانهای CSV را تحلیل میکند.
با fgets() مشابه، اما متفاوت از fgetcsv() است که خطوط ورودی را تحلیل میکند و میدانهای فرمت CSV را پیدا میکند و سپس یک آرایه از این میدانها را برمیگرداند.
fgetcsv() در صورت خطا FALSE برمیگرداند، از جمله در پایان فایل.
نوٹ:از نسخه PHP 4.3.5 به بعد، عملکرد fgetcsv() دوگانهاست.
نحوه استفاده
fgetcsv(file,length,separator,enclosure)
پارامتر | توضیحات |
---|---|
file | ضروری. فایلی که باید بررسی شود را تعیین میکند. |
length |
انتخابی. طول بیشترین خط را تعیین میکند. باید بزرگتر از طول طولانیترین خط در فایل CVS باشد. در PHP 5 این پارامتر انتخابی است. قبل از PHP 5 ضروری است. اگر اسکالپر (در نسخههای بعد از PHP 5.0.4 تنظیم شده به 0) را نادیده بگیرید، طول بدون محدودیت خواهد بود، اما ممکن است تأثیراتی بر عملکرد داشته باشد. |
separator | اختیاری، فیلڈ کا تقسیم کاراکتر (فقط ایک کاراکتر کی اجازت ہے)، جائز مقدار کو کوما کیا جاتا ہے. |
enclosure |
اختیاری، فیلڈ کا احاطہ کاراکتر (فقط ایک کاراکتر کی اجازت ہے)، جائز مقدار کو دوبل کوٹ کیا جاتا ہے. یہ پارامتر پی ایچ پی 4.3.0 میں شامل کیا گیا تھا. |
مطالبات اور نوٹس
نوٹ:CSV فائل میں خالی سطر کا خروج یعنی ایک خالی null فیلڈ والا آرری جائیگا، جس کو غلطی نہیں مانا جائیگا.
نوٹ:یہ فونکشن علاقائی تنظیمات پر حساس ہیں، مثلاً اگر LANG کو en_US.UTF-8 میں ست کیا جاتا تو، ایک بائیٹ کا کد کا فائل پڑھنے میں غلطی آئی جاسکتی ہے.
نوٹ:اگر پی ایچ پی فائل کو پڑھتے ہوئے مکینتوش فائل کی ردعمل نہیں پہچان سکتا تو auto_detect_line_endings چلاؤ اور چلاؤ وقت کی پیکر بندی سیکشن کو چلاؤ.
مثال
مثال 1
<?php $file = fopen("contacts.csv","r"); print_r(fgetcsv($file)); fclose($file); ?>
CSV فائل:
جارج، جان، توماس، یو ایس اے جیمز، آدریو، مارٹن، یو ایس اے
خروج مشابه:
آرری ( [0] => جارج [1] => جان [2] => توماس [3] => یو ایس اے )
مثال 2
<?php $file = fopen("contacts.csv","r"); while(! feof($file)) { print_r(fgetcsv($file)); } fclose($file); ?>
CSV فائل:
جارج، جان، توماس، یو ایس اے جیمز، آدریو، مارٹن، یو ایس اے
خروج مشابه:
آرری ( [0] => جارج [1] => جان [2] => توماس [3] => یو ایس اے آرری ( [0] => جیمز [1] => آدریو [2] => مارٹن [3] => یو ایس اے )