Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.08.2011, 21:34   #1
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию Парсер

Нашел код парсера

PHP код:
<?php
 $content 
file_get_contents("http://news.yandex.ru/");
 
$pos strpos($content"<b>Главные новости</b>");
 
$content substr($content$pos);
 
$pos strpos($content"Автоматически</a>");
 
$content substr($content0$pos);
echo 
$content;
 
?>
но он не работает, где ошибка? или можете дать рабочий простой парсер или функции какими пользоваться можно?
cargo29 вне форума Ответить с цитированием
Старый 07.08.2011, 21:47   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А как ты определил что он не работает?
Что выдает echo?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.08.2011, 22:32   #3
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А как ты определил что он не работает?
Что выдает echo?
полностью чистая страница, пробовал на денвере и на хост заливал везде так
cargo29 вне форума Ответить с цитированием
Старый 07.08.2011, 22:53   #4
Bustle
Interdicted
Участник клуба
 
Аватар для Bustle
 
Регистрация: 25.11.2010
Сообщений: 1,194
По умолчанию

А это что?
Love writing code and I am really passionate about it
Bustle вне форума Ответить с цитированием
Старый 07.08.2011, 23:20   #5
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от cargo29 Посмотреть сообщение
полностью чистая страница, пробовал на денвере и на хост заливал везде так
Трабла из-за кодировки самого документа со скриптом.

Yandex отдает страницу в UTF-8, а документ у вас в ANSI (скорее всего) сохранен.
Естественно, ваша функция strpos() не находит строку "Автоматически</a>"(в ANSI-кодировке) в тексте UTF-8,
поэтому вторая $pos = FALSE(т.е. 0):
PHP код:
$pos strpos($content"Автоматически</a>"); // = FALSE = 0;
$content substr($content0$pos); // = substr($content, 0, 0) = ''; - пустая строка
echo $content//не выводит ничего 
Andkorol вне форума Ответить с цитированием
Старый 08.08.2011, 04:46   #6
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Вообщем попробовал сделать в utf8 и ansi все так же вот посмотрите получиться ли у вас увидеть http://sniff.pz6.ru/ansitest.php
http://sniff.pz6.ru/utf8test.php

у меня в обоих кодировках пустые страницы Bustle вы на каком денвере проверяли??
cargo29 вне форума Ответить с цитированием
Старый 08.08.2011, 05:08   #7
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Вот опробовал так сделать

PHP код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
 $content 
file_get_contents("http://news.yandex.ru/");
 
$pos strpos($content"<b>Главные новости</b>");
 echo 
$pos;
 
$content substr($content$pos);
 
$pos2 strpos($content"Автоматически</a>");
 echo 
$pos2;
 
$content substr($content0$pos2);
echo 
$content;
 
?>

</body>
</html>
браузер не может сам определить кодировку,
Изображения
Тип файла: jpg Безымянный.JPG (53.1 Кб, 151 просмотров)
cargo29 вне форума Ответить с цитированием
Старый 08.08.2011, 05:13   #8
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Есть еще примеры какие нить? или как можно на пхп изменить кодировку в данном случае?
cargo29 вне форума Ответить с цитированием
Старый 08.08.2011, 07:18   #9
frommars
Форумчанин
 
Регистрация: 02.07.2011
Сообщений: 144
По умолчанию

Цитата:
Сообщение от cargo29 Посмотреть сообщение
Есть еще примеры какие нить? или как можно на пхп изменить кодировку в данном случае?
PHP код:
<?php header('Content-Type: text/html; charset=utf-8'); ?>
в самом начале кода
frommars вне форума Ответить с цитированием
Старый 08.08.2011, 10:34   #10
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от cargo29 Посмотреть сообщение
Вообщем попробовал сделать в utf8 и ansi все так же
Я говорю именно о кодировке самого документа с вашим кодом (а не о том, что вы там пишете для браузера) - это должен быть документ в кодировке UTF-8(должен быть сохранен Редактором в этой кодировке), тогда ваш код работает.
Причину я описал выше.

Вы можете сами проверить состояние вашей переменной $content на каждом этапе - для этого после каждого действия с этой переменной поставьте var_dump($content); - и вы увидите, на каком этапе вы теряете контент из этой переменной:
PHP код:
$content file_get_contents("http://news.yandex.ru/"); var_dump($content);// есть
$content substr($content$pos); var_dump($content); // есть
$content substr($content0$pos2); var_dump($content);// - тут уже пусто 
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
парсер shanluu PHP 3 31.05.2011 17:59
парсер на C# newerwiner C# (си шарп) 1 08.05.2011 16:16
парсер массива yardie Общие вопросы C/C++ 0 23.12.2010 09:44
AMF парсер sivuda Работа с сетью в Delphi 2 03.09.2010 13:15
Парсер Ronin333 Общие вопросы C/C++ 3 15.04.2010 14:00