Пробелма с перекодировкой URL

Статус
В этой теме нельзя размещать новые ответы.
1)
вместо
$PageWithLink = file_get_contents('links.txt'); //загружаем ссылки из файла
$PageWithLink = explode("\n", $PageWithLink); //Разбивае все по переносу
$PageWithLink[1] = ereg_replace("\r","",$PageWithLink[1]);//Удаляем перевод каретки
$PageWithLink[1] = ereg_replace("\n","",$PageWithLink[1]);//Удаляем перевод каретки
можно просто
Код:
$PageWithLink=file('links.txt');
2)
сделай такой запрос
Код:
$url='http://hghltd.yandex.net/yandbtm?url='.urlencode('http://smi2.ru/sergysa/c14017');
или как у тебя
Код:
$url='http://hghltd.yandex.net/yandbtm?url='.urlencode('http://'.trim($PageWithLink[1]));

PS вместо
$PageWithLink[1] = ereg_replace("\r","",$PageWithLink[1]);//Удаляем перевод каретки
$PageWithLink[1] = ereg_replace("\n","",$PageWithLink[1]);//Удаляем перевод каретки
мог использовать всего одну замену
+ регулярка не лучший способ это сделать, тут не критично, но вообще учти
 
Спасибо за помощь в решении вопроса и сокращении кода.
 
В итоге получаю:
Warning: file_get_contents(Для просмотра ссылки Войди или Зарегистрируйся) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not found in C:\Program Files\VertrigoServ\www\instrymenti\indexator\index ator.php on line

Все правильно получаете. file_get_contents не предназначен для загрузки документов из интернета и при возникновении ошибок будет вот такая штука. А если ответ от сервера не придет, то он вообще не завершит выполнение и будет висеть, пока не кончится time_limit. Так что не используйте file_get_contents. Как минимум сокеты, а лучше Curl.

Ну и вдогонку статья:
 
  • Заблокирован
  • #5
PHP:
$PageWithLink=file('links.txt');
При больших обьёмах файла - может критично кончится для скрипта. Лучше уже старый добрый file_get_contents() и после разбивка по знаку конца строки
 
2 FL@SH : бред
при большом размере файла -- ты будешь иметь мало того, что массив ( т.к. делаешь explode() ) так еще и строчное представление файла

т.е. памяти займешь больше

тогда уже читать fread() проверяя символ конца строки

если уж на то пошло то построчное чтение с помощью
 

Добавлено через 30 минут
Как отследить скриптом 404 ошибку?
 


отследить 404 - работай курлом и получай хидеры вместе со страницей
 
  • Заблокирован
  • #9
2 ZCFD
А file() возвращает не массив? Суть в том, что file() получает контент файла и разбивает буфур на строки, а при работе с file_get_contents() разбиение на строки происходит с локальной переменной.Я в своё время посвещал немаловремени оптимизации этого вопроса
 
FLASH file() возвращает массив, вот только минимум вызов двух функций медленнее чем вызов одной

+ работа с переменными

пройдись профилировщиком по коду и все поймешь, к чему бесползеные споры?

PS к твоему сведению одна из ошибок - неполное использование возможностей языка. А так -да, можешь и лишний раз explode() сделать
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху