file_get_contents не работает в цикле

141
07 января 2021, 10:30

Пишу так скажем парсер, но не работает file_get_contents в цикле

Вот код

<?php
   $_SERVER['DOCUMENT_ROOT'] = $_SERVER['DOCUMENT_ROOT'] ?: dirname( dirname( 
   (dirname(__FILE__))));
   $_SERVER['REMOTE_ADDR'] = "127.0.0.1";       
   $filename = file($_SERVER['DOCUMENT_ROOT'].'/sitemap.txt');
   $idF = 0;
   foreach($filename as $key=>$value)
   {
       if($key != 0)
       {
           $page_content = file_get_contents($value);
           preg_match_all('|<span class="js-code">(.*)</span>|sUSi', $page_content, $titles[$idF]['id']);
           preg_match_all('|<h1 class="title">(.*)</h1>|sUSi', $page_content, $titles[$idF]['name']);
           preg_match_all('|<p class="decor_6">(.*)</p>|sUSi', $page_content, $titles[$idF]['description']);
           $titles[$idF]['link'] = $value;
           preg_match_all('|<span class="apiimg">(.*)</span>|sUSi', $page_content, $titles[$idF]['image_link']);
           $titles[$idF]['availability'] = 'in stock';
           preg_match_all('|<span class="price priceOrigVariant oldpr">(.*)</span>|sUSi', $page_content, $titles[$idF]['price']);
           preg_match_all('|<span class="price priceVariant newsales">(.*)</span>|sUSi', $page_content, $titles[$idF]['sale_price']);
           preg_match_all('|<span id="bran65">(.*)</span>|sUSi', $page_content, $titles[$idF]['brand']);
           $titles[$idF]['identifier_exists'] = 'no';
           $titles[$idF]['condition'] = 'new';
           $idF++;
}

}

массив показывает только последнее значения. То есть в файле sitemap.txt 2 ссылки и информация есть только по последней ссылки, если ссылки меняю местами, то все равно по последней ссылки есть информация, думал проблема в ссылке, но нет, file_get_contents категорически не хочет тянуть инфу, но если file_get_contents выполняется последний раз, информация есть.

Подскажите где я не так делаю, может проблема не в file_get_contents?

Answer 1

проблему решил таким образом, некорректно тянуло с файла ссылки

file_get_contents(trim($value))
READ ALSO
Работа с данными и проверка данных массива

Работа с данными и проверка данных массива

У меня есть массив данных который приходит с POST, а имеено

85
Способы оптимизации sql-запроса

Способы оптимизации sql-запроса

Один запрос выборки статистики занимает достаточно много времени, да и сам запрос достаточно сложныйМного внутренних запросов и подсчеты...

117
Очищает ли JVM стек вызовов после StackOverflowError?

Очищает ли JVM стек вызовов после StackOverflowError?

Пусть N это N-ое число Фибоначчи, при вычислении которого возникает переполнение стека вызовов, а K это K-ое число Фибоначчи, которое будет вычислено...

96
Шифрование строк для защиты Android приложений

Шифрование строк для защиты Android приложений

я уже готовлюсь выложить приложение в Google Play и теперь мне надо защитить свое приложение от взлома и дрЯ уже настроил Proguard, обфускация работает

95