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