فونکشن 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] => یو ایس اے
)