- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Приветствую !
Не силен я в пхп, но встала задача написать простенький парсер.
В общем малость погуглив ( подумав ... ) получилось так :
<?
$link = mysql_connect("localhost", "klogin", "passwors")
or die("Could not connect: " . mysql_error());
print ("Connected successfully");
mysql_select_db('baza', $link) or die ('Can\'t use baza: ' . mysql_error());
$url = 'http://donor.ru/1_full.rss'; //адрес RSS ленты
$rss = simplexml_load_file($url); //Интерпретирует XML-файл в объект
//цикл для обхода всей RSS ленты
foreach ($rss->channel->item as $item) {
echo '<h1>'.$item->title.'</h1>'; //выводим на печать заголовок статьи
echo $item->description; //выводим на печать текст статьи
$qq="4"; // категория куда постим
$qqq=rand(1,10000); // ид новости
$qqqq=rand(1,100); // картинка ! надо обдумать
$qqqqq=rand(1,100); // сколько раз читали новость
$data=date("l dS of F Y h:I:s A");
$sql = "INSERT INTO `news_block` (`record_id`, `section`, `title`, `brief`, `message`, `time`, `photo`, `views_amount`) VALUES
($qqq, $qq, '$item->title', '$item->title', '$item->description', '$data', '$qqqq', $qqqqq)";
mysql_query($sql) or die('SQL ERROR:'.mysql_error());
}
mysql_close($link);
?>
прошу сильно не смеяться я не программер, сделал как могу ...
Но есть проблема рсс лента идет в кодировке <?xml version="1.0" encoding="windows-1251"?>
а двиг куда постим на утв8
Вопрос как сделать чтобы кодировка перед внесением в базу преобразовалась в нужную ?
Если кто может доработать его до нормального состояния ( работы с картинками на пример ... ( пожеланий много ) можете написать в лс , готов предложить ганарар 1к рублей )
$rss = simplexml_load_file($url); //Интерпретирует XML-файл в объект
на этом этапе происходит автоматическая конвертация cp1251 => utf8 если я не ошибаюсь на память ...
если у вас так не получается, то это значит что в базу пытаетесь писать utf8 данные через стандартные для недохостингов настройки соединения = тобишь через latin1 кодировку, соответственно получается жопа.
совет: после mysql_connect
сделайте mysql_query("SET NAMES utf8");
и уверен на 99% это поможет на ура :)
seodude добавил 12.02.2011 в 16:48
можете написать в лс
интересно тз на добавки, писаните в лс плз что хотите за этот 1к)
foreach ($rss->channel->item as $item) {
Внутри этого цикла добавьте преобразование $item->title = iconv("windows-1251","UTF-8",$item->title); и аналогично для всех строк.
большое спасибо ( seodude )
Ваш совет помог решить проблему )))
Может у кого есть желание научить этот недопрасер нормально работать с картинками ? ( в лс скидывайте расценки )
ParserYa, вы пробовали это делать или просто потроллить отписали? 🤣
seodude, 100500 раз. Контекст может чуть другой, но суть такая.
ParserYa, объект через конвертер пропускать?))) разве функция не со строками работает? я попробовал в консоли - у меня вообще ничего не вывело))
seodude, объект в данном случае $rss, а когда применяем цикл foreach ($rss->channel->item as $item), то в $item->title уже будет строка - разве нет?
ParserYa, тут вы правы, но не объект же через него пропускать rss = iconv . rss 🤣
seodude, объект в данном случае $rss, а когда применяем цикл foreach ($rss->channel->item as $item), то в $item->title уже будет строка - разве нет?
Ну формально это объект - object(SimpleXMLElement), но имеет метод __toString, поэтому имеет строковое представление.
ParserYa, тут вы правы, но не объект же через него пропускать rss = iconv . rss
Дак это я спросони написал $rss = iconv... Перечитал, и тут же исправил - даже сообщения о том, что редактировал не появилось :) Я же не виноват, что вы мой бред, написанный с полузакрытыми глазами, успели прочитать :)