![]() |
0 Всего найдено: 10
DelphinPRO
Сообщение
10/02/2010 16:47
Копия темы
Помогите с php разобраться вот кусок кода: $user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/cookies.txt'; $ch = curl_init(' curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"); curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file); curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file); $html = curl_exec($ch); curl_close($ch); $pos = strpos($html, '<h1 >Каталог</h1 >'); $pos всегла равен 0, т.е. строка '<h1 >Каталог</h1 >' не находится. Вопрос Почему? (Строка в выдаче заведомо есть) Сервер мой файл скрипта parser.php тоже в кодировке Windows-1251
barmaley-exe
Сообщение
10/02/2010 17:01
Копия темы
Пробелы, скорее всего, были поставлены, чтобы парсер не съел теги.
barmaley-exe
Сообщение
10/02/2010 17:03
Копия темы
Если strpos возвращает 0, это не значит, что строка не найдена. А вот если возвращает FALSE, тогда да действительно не найдено.
DelphinPRO
Сообщение
10/02/2010 17:06
Копия темы
В $html данные есть Если сделать echo $html; то выводится страница Проблема в том что из этой переменной не могу достать ни одной подстроки с русскими буквами. К примеру $pos = strpos($html, '<h1 >'); в $pos значение отличное от нуля. Подозреваю, что проблема в кодировках, но не врублюсь что именно. зы. <h1 > в реальном коде пробелов нету, это фриланс воспринимает h1 как тег форматирования, вот и написал с пробелами
romalkavian
Сообщение
10/02/2010 17:07
Копия темы
сделай распечатку $html, если там точно есть искомая строка знач проблема с кодировкой, скорее всего. Смотри, какая локаль и все-такое. Честно говоря, не очень хорошо все это помню, искать лениво но те же функции типа ucwords, например, в некоторых случаях не пашут с кириллицей и нужно спецом настраивать. Так что дай для начала сюда инфу, какая локаль у тебя)
RiDDi
Сообщение
10/02/2010 17:15
Копия темы
аа, ну и отлично ) в какой кодировке данные в $html? Может попробовать указать в CURLOPT_HTTPHEADER кодировку? Пол года уже не работаю с курлом (пишу все парсеры на си или яве), но помню, что там с кодировками все как часы ) и setlocale(LC_ALL, 'ru_RU.CP1251'); попробуйте
DelphinPRO
Сообщение
10/02/2010 17:19
Копия темы
0
а ларчик просто открывался Всем спасибо за внимание, проблема решена. Создал новый файл, копипастнул туда весь скрипт и сохранил в Windows-1251 Все заработало как надо. В чем была суть проблемы не понял, наверное Notepud++ косячит при конвертировании из одной кодировки в другую |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |