Как масив записать в файл прочитать файл?

Здравствуйте помогите не могу добить, есть масив array('vkShare','Google','VKontakte','FacebookExternalHit', и я это записываю в файл построчно
YandexBot
Googlebot
Googlebot-Image
Mediapartners-Google

и вот из файла не могу вывести а через арай работает

function is_bot()
{
    if (!empty($_SERVER['HTTP_USER_AGENT'])) {
$list = file("data/bot.dat"); //так не хочет работать 

$list = array('vkShare','Google','VKontakte','FacebookExternalHit');//а так работает
       foreach($list as $row => $botname) {

		   //var_dump($row);
            if (stripos($_SERVER['HTTP_USER_AGENT'], $botname) !== false) {
                return $list[$row]; // получаем имя бота из массива
			
            }
        }
    }
    return false;
}

$name = is_bot();
 
if ($name) {
$botname = $name ;
} else {
$botname = "Посетитель";
}
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
AlexMaxTM
@AlexMaxTM
Вы проверьте после чтения файла что у вас в массиве? Может быть данные просто не прочитались, а может быть переносы строк не того формата.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Exploding
@Exploding
wtf?
Пойдет?
$str = serialize($array); //можно в файл писать или куда там надо
$str = base64_encode($str);

$fp = fopen("path/data_file.ura", "w");
fwrite($fp, $str); 
fclose($fp);	
//-----------------------------------
// читаем
$dataFromFile = file_get_contents("path/data_file.ura"); //получили шлак
$array = unserialize(base64_decode($dataFromFile)); //обратно в массив

base64 это уже так... для надежности от разного рода неизвестностей
Ответ написан
proudmore
@proudmore
Из файла вы читаете строку, а не массив, тогда как циклом вы можете пройти только по массиву. Вам нужно сделать из строки получить массив. Если названия ботов в файле расположены на разных строках, то сделать это можно таким образом:
$list = explode(PHP_EOL, file_get_contents("data/bot.dat"));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы