X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Вывод со страницы
Р-е-З-а-К
Р-е-З-а-К
Topic Starter сообщение 13.7.2012, 5:51; Ответить: Р-е-З-а-К
Сообщение #1


Здравствуйте. у меня тут такая проблемка.. нужно вывести нужную информацию со страниц. есть 3-4 страницы на сайте.. на этих страницах текст и ссылки.. ссылки мне не нужны.. нужен только текст и то не весь а только там где есть нужное мне слово. страница идет строками.. 10 строчек на странице разделенными тегом <br/>. пример:
<br/>сегодня была хорошая погода.
<br/>завтра будит плохая.
<br/>послезавтра погода будит отличная.
так вот.. мне нужно вывести все строчки где есть слово погода :D пробывал таким кодом:
$content = file_get_contents("адрес_страницы");
$content2 = $content;
$pos = strpos($content2, "погода");
$content2 = substr($content2, $pos);
$pos = strpos($content2, "<br/>");
$m = substr($content2, 0, $pos);

но он выводит только одно первое совпадение на странице и то только начиная от слово погода и до <br/> и всё. а их там может до 10 быть на странице. кому не сложно подскажите пожалуйста как решить эту проблемку
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
c0ns0l3
c0ns0l3
сообщение 13.7.2012, 7:29; Ответить: c0ns0l3
Сообщение #2


Смотри, file_get_content возвращает тебе в одной переменной всё содержимое адреса.
И твои substr обрабатываются только один раз. - естественно, оно будет выводить только один раз.
в кратце прочитаем твой код:
$pos = найдем место, где появляется слово погода. (количество знаков до этого слова)
$content2 = обрезаем от 0го знака, до места $pos (тут теряется твое "погода")
$pos = опять смотрим где начинается в УЖЕ обрезаном "БР"
$m = обрезаем от 0 до $pos;

тоесть вовсе не то, что надо.

Что б решить твою задачу есть 2 способа:
1 - воспользоваться RegExp выражением, в частности (preg_match_all)
2 - преобразовать файл в массив по строчкам (<br/>) и пройтись по каждой строке


Пример 2го варианта:
$content = ('адрес страницы');
$array_of_lines = explore('<br/>',$content);
foreach ($array_of_lines as $single_line) {
    if(strpos($single_line,'погода')){
        echo $single_line;
    }
}


http://php.net/manual/en/function.explode.php
http://php.net/manual/ru/function.strpos.php
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Р-е-З-а-К
Р-е-З-а-К
Topic Starter сообщение 14.7.2012, 4:23; Ответить: Р-е-З-а-К
Сообщение #3


а вот ещё одна задачка не решенная.. со страницами. нужно чтоб ещё 4 страницы назад проверял. там у меня идет так.. код проверят сколько всего записей и с последней записи начинает искать нужное слово.. и так 4 страницы ещё назад. допустим всего 100 записей.. это значит 10 страниц всего.. есть переменная $s и в ней эта цифра 100. нужно чтоб код открывал 90,80,70,60 записи ещё и там искал :D не охота повторять код 4 раза чтоб проверить 4 страницы. вроде это делается с for() но как именно не знаю толком. что добавить к коду чтоб норм было? )

$content = file_get_contents("http://домин&pg=$s");
$array_of_lines = explode("<br/>",$content);
foreach ($array_of_lines as $single_line) {
    if(strpos($single_line,"$slovo")){
            echo $single_line,"<br/>";
    }
}
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
c0ns0l3
c0ns0l3
сообщение 15.7.2012, 16:47; Ответить: c0ns0l3
Сообщение #4


[member=Р-е-З-а-К], на самом деле гугл в помощ :D
http://php.net/manua...uctures.for.php

$start = 100;  //твой старт
$step = 10;    //шаг в сколько "записей" назад
$count = 4;    //количество шагов назад

for($page = $start; $page>=$step*$count;$page-=$step){  
    $content = file_get_contents("http://домин&pg=$page");
    $array_of_lines = explode("<br/>",$content);
    foreach ($array_of_lines as $single_line) {
        if(strpos($single_line,$slovo)){
                        echo $single_line,"<br/>";
        }
    }
}


И это можно сделать еще простым while...

Но, чем больше, скажем так страниц, будет открывать твой РНР код - тем дольше будет он выполняться у тебя на Сайте, т.к. пока он не откроет и не прочитает данные ( а это запрос ДНС, запросы хедеров, ответ внешнего сайта и т.д.) - он дальше не будет отрабатывать, значит у тебя будет висеть белая страница.

В таком случаи, нужно реализовывать для быстроты работа - какое-то кеширование, что типа с интервалом допустим в 1 день, запросы будут уходить на внешний сайт, брать данные и записывать у тебя на хостинге уже в какой-то временный файл, а все остальное время (пока не выйдет интервал 1 день) данные будут браться уже с этого файла.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Р-е-З-а-К
Р-е-З-а-К
Topic Starter сообщение 16.7.2012, 5:43; Ответить: Р-е-З-а-К
Сообщение #5


c0ns0l3, спасибо ещё раз ). да в гугле я искал.. конкретных и подходящих примеров не нашел тогда
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
c0ns0l3
c0ns0l3
сообщение 16.7.2012, 7:00; Ответить: c0ns0l3
Сообщение #6


Конкретно подходящих примеров может ты и не найдешь, но найти примерно какие ф-ции тебе нужны, документацию по этим ф-циям можно легко. А дальше простая логика для того, что б написать то, что именно тебе требуется.

Для этого форумы обычно и нужны, что бы подпихнуть в правильном направлении тебя.


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужно ли закрывать ненужные страницы тегом noindex, follow?
8 noviktamw 2834 2.3.2024, 12:53
автор: toplinks
Горячая тема (нет новых ответов) Ручной обмен, ввод/вывод электронных валют | ЮMoney, WMZ, Крипта, Приват, Монобанк | Низкие комиссии, минимальные суммы сделок
быстро, удобно, по доступному курсу
200 Sostavitel 97663 11.2.2024, 21:07
автор: Wolfhound
Открытая тема (нет новых ответов) Вытащить страницы из кэша Яндекса
2 VostrVL 1914 11.1.2024, 23:07
автор: ЛаврионСергеевич
Открытая тема (нет новых ответов) Sbitcoin.ru – Ввод, Вывод, Обмен: Qiwi, YD, Btc, Btc-e, PM, Cash IN, PR24, MG, WU, Нал (RU, UA).
9 sbitcoinru 6746 10.10.2023, 19:25
автор: Sbitcoin
Горячая тема (нет новых ответов) Обмен WebMoney - Яндекс - QIWI. Вывод/ввод Приват24 UAH
225 himin 132448 7.5.2023, 13:26
автор: Вера_Симонова


 



RSS Текстовая версия Сейчас: 29.3.2024, 1:21
Дизайн