php - file_get_contents () yoki shunga o'xshash funksiya

.Txt faylida saqlangan mamlakatlar ro'yxatini olish uchun file_get_contents() dan foydalanayapman. Har bir tuman o'z yo'nalishida.

Har bir uskuna atrofidagi kotirovkalarni va keyin funktsiyani o'z ichiga olgan vergulni kiritishning usul bormi? Bir cheklovim shuki, bu funktsiya ichida to'ldirish kerak va ikkita alohida buyruqlar bo'lmaydi.

Buni amalga oshirish mumkinmi?

Yoki buning uchun yana bir vazifani ko'rib chiqayapmanmi?

1
@Jleagle @DaveRandom; Men ilovamni tahrir qilyapmiz va biz faqat maxsus formani shaklga qo'shimcha maydon qo'shish uchun ruxsat beramiz. Bu faylni boshqa tillar bilan to'ldiradi va u tillarni tarjima qiladi va maydonlarni to'ldirish uchun biror narsa qiladi (bu faylga kirish uchun ruxsat yo'q). Shu sababli, boshqa har qanday qo'shimcha buyruqlar qo'shish jarayoni buzadi.
qo'shib qo'ydi muallif Mechaflash, manba
Buning sababi nima uchun pastga tushdi?
qo'shib qo'ydi muallif Mechaflash, manba
Mening bitta cheklovim shundaki, u funktsiya ichida to'ldirishga to'g'ri keladi - nega? Bu erda kerakli natija nima bo'ladi - CSV yoki nimadir yozyapsizmi?
qo'shib qo'ydi muallif DaveRandom, manba
Ikkita alohida buyruq nima degani?
qo'shib qo'ydi muallif xdazz, manba
Nega ikkita vazifani ishlata olmaysiz?
qo'shib qo'ydi muallif 472084, manba
Ehtimol, bir funktsiyani cheklashning g'aroyib talablari tufayli. (Men pastga tushmadim).
qo'shib qo'ydi muallif middus, manba

4 javoblar

$countries = file('countries.txt');//get country list into an array

$fixed_countries = array_map(function($v) { return '"' . trim($v) . '",'; }, $countries);
3
qo'shib qo'ydi
Men oldinga bordim va ro'yxatni tegishli tirnoq va vergul bilan almashtirish uchun ommaviy skriptni ishlatib, faylni serverga qayta kiritdingiz, keyin faylni() to'ldirish uchun faylni ishlatdingiz. Jozibasi kabi ishladi. Rahmat
qo'shib qo'ydi muallif Mechaflash, manba

Albatta.

$countries = explode("\n",'"'.str_replace("\n","\",\n\"",file("countries.txt")));

Bu faylni quyidagi kabi o'zgartirishi kerak:

country1
country2
...

bu kabi qatorga aylantiriladi:

array('"country1",','"country2",',...).

Siz xohlaganingiz shu, to'g'rimi?

1
qo'shib qo'ydi
Buning natijasi array (0 => '' Array ') bo'lishi mumkin, chunki siz qatorni qatorga qo'shasiz.
qo'shib qo'ydi muallif DaveRandom, manba

Buni juda oson bajarishingiz mumkin va agar siz fayli file_get_contents o'rniga :

$callback = create_function('$c', 'return "\"".trim($c)."\"";');
$countries = array_map($callback, file('countries.txt'));
return implode(', ', $countries);

I have written $callback with a syntax that is valid for PHP < 5.3; it's also possible to write it as an anonymous function:

$callback = function($c) { return '"'.trim($c).'"'; };

See it in action.

1
qo'shib qo'ydi
To'xtatuvchidir: iltimos, bu fikrni sharh qoldirib, yaxshilash uchun menga yordam ber.
qo'shib qo'ydi muallif Jon, manba

Agar biron-bir satrni o'qigan bo'lsangiz, fayl file_get_contents ga nisbatan ancha mos keladi:

echo implode(',',
             array_map(function($county) {return '"' . trim($county) . '"';}),
                       file('counties.txt'));
0
qo'shib qo'ydi
Men ushbu javobni yaxshilab baxtiyorman. Unda nima yanglish?
qo'shib qo'ydi muallif phihag, manba
PhP |BotsUz
PhP |BotsUz
93 ishtirokchilar

Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin