فونکشن 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

اختیاری. تنظیم کاراکترهای محیط‌بندی فیلد (فقط یک کاراکتر مجاز است)، مقدار پیش‌فرض آن کاموا است.

این پارامتر در PHP 4.3.0 اضافه شده است.

توضیحات و اضافات

توضیحات:ترتیب خالی فایل‌های CSV به عنوان آرایه‌ای شامل یک حقل null بازمی‌گردد و به عنوان خطا در نظر گرفته نمی‌شود.

توضیحات:این تابع به تنظیمات زبان حساس است. به عنوان مثال، اگر LANG به en_US.UTF-8 تنظیم شود، فایل‌های کد یک‌بایتی ممکن است خطای خواندن رخ دهد.

توضیحات:اگر PHP در هنگام خواندن فایل نتواند خط پایان فایل‌های Macintosh را تشخیص دهد، می‌توانید تنظیمات اجرایی auto_detect_line_endings را فعال کنید.

مثال

مثال 1

<?php
$file = fopen("contacts.csv","r");
print_r(fgetcsv($file));
fclose($file);
?>

فایل CSV:

George, John, Thomas, USA
James, Adrew, Martin, USA

خروجی مشابه:

Array 
( 
[0] => George
[1] => John 
[2] => Thomas
[3] => USA
)

مثال 2

<?php
$file = fopen("contacts.csv","r");
while(! feof($file))
  {
  print_r(fgetcsv($file));
  }
fclose($file);
?>

فایل CSV:

George, John, Thomas, USA
James, Adrew, Martin, USA

خروجی مشابه:

Array 
( 
[0] => George
[1] => John 
[2] => Thomas
[3] => USA
Array
(
[0] => James
[1] => Adrew
[2] => Martin
[3] => USA
)