Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: RegExp
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 77, средняя оценка - 4.75
melihovgv
15 / 14 / 4
Регистрация: 12.06.2011
Сообщений: 842
#1

Как получить все ссылки со страницы регулярными выражениями? - PHP

14.01.2013, 18:09. Просмотров 13580. Ответов 10
Метки нет (Все метки)

Здравствуйте, скажите пожалуйста как получить все ссылки со страницы регулярными выражениями?

Добавлено через 6 минут
PHP
1
2
3
4
5
6
7
8
<?
 
$contents=file_get_contents (trim('http://site.ru/'));
 
echo $contents;
 
 
?>
Вот так получил страницу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2013, 18:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как получить все ссылки со страницы регулярными выражениями? (PHP):

Не могу получить третью строчку регулярными выражениями
Есть следующая конструкция &lt;p class=&quot;page-footer&quot;&gt; &lt;span...

Как убрать http из домена регулярными выражениями
Здравствуйте, уважаемые форумчане. Скажите, как можно убрать из урл вида...

Как найти регулярными выражениями перенос строки?
&lt;tr&gt; &lt;td &gt;Строка 1&lt;/td&gt; &lt;td &gt;Строка 2&lt;/td&gt; &lt;td &gt;Строка 3&lt;/td&gt; &lt;td &gt;Строка...

Работа с регулярными выражениями
Мне нужно получить из страницы определенные куски текста. т.е. надо найти такой...

Регулярными выражениями php
Очень плохо разбираюсь в регулярных выражениях, пожалуйста , помогите с...

Выбрать теги регулярными выражениями
Здравствуйте, во не знаю куда больше обратиться. Например есть HTML (он...

10
casual_visitor
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
14.01.2013, 18:35 #2
регулярками - это обязательное условие?
0
tolimadokara
745 / 411 / 91
Регистрация: 24.10.2012
Сообщений: 3,020
14.01.2013, 18:37 #3
PHP
1
2
3
$contents = file_get_contents("htp://site.ru/");
preg_match_all('/href="([^"]+)"/', $contents, $links);
foreach( $links as $key => $link ) echo $link[1]."<br/>";
0
melihovgv
15 / 14 / 4
Регистрация: 12.06.2011
Сообщений: 842
14.01.2013, 18:37  [ТС] #4
casual_visitor, а как еще можно с помощью php ???
0
melihovgv
15 / 14 / 4
Регистрация: 12.06.2011
Сообщений: 842
14.01.2013, 18:42  [ТС] #5
Цитата Сообщение от tolimadokara Посмотреть сообщение
PHP
1
2
3
$contents = file_get_contents("htp://site.ru/");
preg_match_all('/href="([^"]+)"/', $contents, $links);
foreach( $links as $key => $link ) echo $link[1]."<br/>";
Получил две ссылки.
0
casual_visitor
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
14.01.2013, 18:46 #6
качаем phpQuery-onefile.php потом.... как фантазия позволяет..
можно так(кусок моего класса для парсинга койчего, не только можно ссылки искать):
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
 
require_once 'phpQuery-onefile.php';
 
class HtmlParser {
    private $html;
    public function __construct($html) {
        $this->html=$html;
    }
   
    public function getLinks(){
        
        $links=array();
        if(!$this->html) return false;
        $doc = phpQuery::newDocument($this->html);
        foreach($doc->find('a') as $a){
            $buf=trim(pq($a)->text());
            if(strlen($buf)==0){
                $buf=pq($a)->attr('href');
            }
            $links[pq($a)->attr('href')] = $buf;
        }
        return $links;
    }
}
 
?>
а регулярки я бы использовал для обработки обычных текстов, не содержащих служебных символов. при наличии оных изза экранирования символов регулярка становится нечитаемой...дело вкуса конечно..
0
tolimadokara
745 / 411 / 91
Регистрация: 24.10.2012
Сообщений: 3,020
14.01.2013, 18:58 #7
melihovgv, не много ошибся, так получите все ссылки в site.ru
PHP
1
2
3
$contents = file_get_contents("http://site.ru/");
preg_match_all('/href="([^"]+)"/', $contents, $links);
foreach( $links[1] as $key => $link ) echo $link."<br/>";
1
melihovgv
15 / 14 / 4
Регистрация: 12.06.2011
Сообщений: 842
14.01.2013, 19:03  [ТС] #8
tolimadokara, то что нужно) Сердито и со вкусом)
0
scherbakovss201
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,542
09.07.2018, 12:13 #9
Цитата Сообщение от tolimadokara Посмотреть сообщение
melihovgv, не много ошибся, так получите все ссылки в site.ru
Работает только с главной страницы,с остальных не парсит,и еще хотелось бы отфильтровать чтобы только картинки парсить.
0
Рыжий Лис
Просто Лис
928 / 450 / 322
Регистрация: 17.05.2012
Сообщений: 1,857
Записей в блоге: 7
14.07.2018, 20:22 #10

Не по теме:

Некропостер.



Так остальные страницы нужно тоже скачивать.

Цитата Сообщение от scherbakovss201 Посмотреть сообщение
еще хотелось бы отфильтровать чтобы только картинки парсить.
Регулярки в помощь
0
scherbakovss201
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,542
14.07.2018, 20:29 #11
А все страницы тогда,как получить ибо в карту сайта не вошли модальные окна?
0
14.07.2018, 20:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2018, 20:29
Привет! Вот еще темы с решениями:

Кто поможет с регулярными выражениями!
Задание 6. Выделить тегом &lt;strong&gt; повторяющиеся слова. Задание 7....

Работа с входящими массивами и регулярными выражениями
Входит массив со значениями. Помогите проверить если значения начинаются, к...

Простой парсер на php с регулярными выражениями
Всем Здравствуйте. Пытаюсь спарсить новости с сайта http://vak.ed.gov.ru/news....

Хранение данных после обработки регулярными выражениями
Регулярное выражение разбивает строку на слова, функцией print_r читаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru