CSV файл, обработка в PHP

<<Desperado>>
На сайте с 27.08.2007
Offline
58
945

Приветствую!

Проблема такая:

Есть CSV файл, база соответствия ИП адресов странам.

данные там в таком виде:

16777216,"33554431","AU","AUS","AUSTRALIA"

72349056,"72349119","BM","BMU","BERMUDA"

202621432,"202621439","PR","PRI","PUERTO RICO"

и т.д. У меня в переменной $country есть код страны, (AU, BM, PR и т.д.) мне надо в переменную $country записать не код страны, а именно страну (AUSTRALIA, BERMUDA и т.д.).

Делаю так:


$file = "ip.csv";
$fp = fopen($file, "r");

while ($data = fgetcsv ($fp, 100, ","))
{
$num = count ($data);
for ($c=0; $c < $num; $c++)
{
if ($country == $data[2]){
$country = $data[4];
}
}
}

fclose($fp);

т.е. записываю в цикле строки файла в массив, и сравниваю 2-й элемент массива с кодом страны моим. Но ничего увы не получается. Хелп плз)

zhitov
На сайте с 30.01.2005
Offline
219
#1
<<Desperado>>:
$country есть код страны, AU, BM, PR

А в файлике "AU", с кавычками.

Строительные калькуляторы ( https://www.zhitov.com/ )
<<Desperado>>
На сайте с 27.08.2007
Offline
58
#2

zhitov, та не...ну то я написал так, я проверяю код страны, который заключён в кавычки)

zhitov
На сайте с 30.01.2005
Offline
219
#3
<<Desperado>>:
я проверяю код страны, который заключён в кавычки

судя по куску кода - нет. Или ваши коды стран - тоже в кавычках?

Далее. $country - что в ней за значение, откуда берется?

TF
На сайте с 15.06.2010
Offline
7
#4


$file = "ip.csv";
$fp = fopen($file, "r");

while ($data = fgetcsv ($fp, 100, ","))
{
if ($country == $data[2]) {$country = $data[4]; exit();}
}
fclose($fp);

Читаем строки из файла по одной, сравниваем второй (третий по счету [0,1,2]) элемент массива $data с $contry, если совпадает то присваеваем $contry пятый элемент массива $data, exit - выход из цыкла так как нам дальше уже не интересно.

Вроде так?

4arger
На сайте с 17.12.2008
Offline
95
#5

наверное, лучше break;

TF
На сайте с 15.06.2010
Offline
7
#6

да ) вместо exit() написать break();

<<Desperado>>
На сайте с 27.08.2007
Offline
58
#7

tranceFormer, 4arger всё работает, пасибо!.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий