![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
fridkaratel |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.10.2007 Где: Error connect to MySQL Da... Репутация: нет Всего: нет |
В-общем, возникла такая задача...
Не знаю, как лучше всего сделать... Через str_pos, думаю, долго будет, а через preg_replace (или что-то такое) делать не умею. Суть скрипта такова: на другом сайте есть новости. Их необходимо выдергивать и заносить к себе на сайт. Выглядит это так: список ссылок, при нажатии на ссылку попадаем на информацию о новости. Вот код, который выводит список ссылок. Я привел здесь одну из ссылок, выдернутую с сайта:
При нажатии на ссылку, переходим в описание новости. Вот шаблон описания:
Знаю, что делается это не сложно, но никогда не работал с выдиранием текста из страниц. Пытался изучить preg_replace, так сказать, на примерах, но так и не смог понять, какие шаблоны, что и куда вставлять. Кто что может подсказать, посоветовать? Прошу подробней, потому что в именно этом деле я мало что соображаю ![]() Это сообщение отредактировал(а) fridkaratel - 29.4.2009, 08:18 |
||||
|
|||||
lelik133 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 517 Регистрация: 5.2.2003 Где: Москва Репутация: 5 Всего: 14 |
воровать чужой контент плохо
|
|||
|
||||
InvalidProperty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 356 Регистрация: 31.10.2007 Где: Россия, Казань Репутация: 2 Всего: 9 |
неудобно же смотреть. ты хотя бы отформатировал текст. для того, чтобы вырезать ссылку из первой части используй рег выражение
, т.о. строчка echo $news[1]; выведет искомую новость. ЗЫ В рег. выражениях нет ничего сложного, просто нужно пару раз ман от начала до конца прочитать. Добавлено через 25 секунд кстати, господин lelik133, прав -------------------- dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null echo $0 >> $0 |
|||
|
||||
fridkaratel |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.10.2007 Где: Error connect to MySQL Da... Репутация: нет Всего: нет |
Я их не размещаю на своем сайте - я их заношу к себе на сайт. То есть закидываю в БД. Как закинуть в БД знаю, а вот с выдиранием ни разу не работал... Мне просто нужно хранить архив новостей с разных сайтов, а быстрее (и легче) его не самому сохранять постранично на диски или в текстовый файл, а выдирать и раскидывать по категориям с помощью php-скрипта, который будет выполняться на сервере. Так я избавлю себя от выкачивания лишней информации типа баннеров, рекламы и т.п... Во-от ![]() То есть я не ворую, а создаю архив в своей БД. Размещаться эти новости нигде не будут. Поэтому и хотелось бы превратить текст полученной странички в переменные php, которые я бы смог потом закинуть в БД. Это сообщение отредактировал(а) fridkaratel - 29.4.2009, 08:24 |
|||
|
||||
InvalidProperty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 356 Регистрация: 31.10.2007 Где: Россия, Казань Репутация: 2 Всего: 9 |
у меня там ошибка выше. Утро раннее, не проснулся еще. код должен быть таким
-------------------- dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null echo $0 >> $0 |
|||
|
||||
fridkaratel |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.10.2007 Где: Error connect to MySQL Da... Репутация: нет Всего: нет |
Там еще в первой строке скобка не там стоит ![]() Есть одно но - выдает ссылку не 4745029, а просто первую цифру - 4. И почему-то не пробегается по всем совпадениям - выдает только первое... Это сообщение отредактировал(а) fridkaratel - 29.4.2009, 09:09 |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
fridkaratel, Вообще-то новости, обычно, распространяются rss-лентами. И воровать ничего не приходится. RSS- обычный xml, который можно пропарсить каким нибудь xml парсером.
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
fridkaratel |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 221 Регистрация: 22.10.2007 Где: Error connect to MySQL Da... Репутация: нет Всего: нет |
Перед стартом топика, я посмотрел то, что уже было на форуме... Ну и изучил сайт, с которого буду архивировать новости. На том сайте нет RSS.. ;) Почему-то... Это сообщение отредактировал(а) fridkaratel - 29.4.2009, 09:14 |
|||
|
||||
InvalidProperty |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 356 Регистрация: 31.10.2007 Где: Россия, Казань Репутация: 2 Всего: 9 |
а, ну да! потому что нужно preg_match_all использовать
тогда $matches[1] будет содержать массив вхождений первой подмаски -------------------- dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null echo $0 >> $0 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |