PHP, как вырезать строки содержащие addstat

red_red_wolf
На сайте с 10.06.2009
Offline
37
892

PHP, как вырезать строки содержащие addstat , и вывести их на экран

мне нужны только вот такие строки

<span>www.rabelais.ru/catalog/addstat</span>

вот откуда вырезать

<span>ещё</span>

<span>Войти</span>

<span>Владивосток</span>

<span>Добавление статьи в каталог </span>

<span>www.rabelais.ru/catalog/addstat</span>

<span>Добавление статьи в каталог </span>

<span>a.eurosmi.com/addstat?id_cat=4</span>

<span>Добавление статьи в каталог </span>

<span>www.bach.su/catalog/addstat</span>

<span>Добавление статьи в каталог </span>

<span>bizwiz.com.ua/addstat</span>

<span>Каталог статей и сайтов </span>

<span>catalog.vollar.ru/addstat</span>

<span>Добавление статьи в каталог </span>

<span>reestr.bahmut.name/addstat</span>

<span>Добавление статьи в каталог </span>

<span>7y8.ru/addstat</span>

<span>Добавление статьи в каталог </span>

<span>trust.dealane.ru/addstat?id_cat=6</span>

<span>следующая</span>

<span>&copy;&nbsp;1997&mdash;2009</span>

K
На сайте с 31.08.2006
Offline
47
#1

$text = "<span>ещё</span>

<span>Войти</span>
<span>Владивосток</span>
<span>Добавление статьи в каталог </span>
<span>www.rabelais.ru/catalog/addstat</span>
<span>Добавление статьи в каталог </span>
<span>a.eurosmi.com/addstat?id_cat=4</span>
<span>Добавление статьи в каталог </span>
<span>www.bach.su/catalog/addstat</span>
<span>Добавление статьи в каталог </span>
<span>bizwiz.com.ua/addstat</span>
<span>Каталог статей и сайтов </span>
<span>catalog.vollar.ru/addstat</span>
<span>Добавление статьи в каталог </span>
<span>reestr.bahmut.name/addstat</span>
<span>Добавление статьи в каталог </span>
<span>7y8.ru/addstat</span>
<span>Добавление статьи в каталог </span>
<span>trust.dealane.ru/addstat?id_cat=6</span>
<span>следующая</span>
<span>&copy;&nbsp;1997&mdash;2009</span>";

preg_match_all("|<span>(.*)/addstat(.*)</span>|i", $text, $matches);
foreach ($matches[0] as $match) {
echo $match . "\n";
}

Kirilll добавил 05.11.2009 в 15:05

Но это будет работать только когда во всех адресах есть подстрока "/addstat"...

Размещаем статьи - Украинское СМИ, ПР5, ТИЦ 3000, ЯК, ДМОЗ, домену > 10 лет (/ru/forum/416715)
wdsg
На сайте с 09.02.2009
Offline
31
#2

Регулярку, в данном случае, совершенно не обязательно выкатывать.

Если содержимое в $Content (не забываем про \n и \n\r):


$Lines = explode("\n", $Content);

Если содержимое в файле:


$Lines = file('path/to/file');

И далее:


foreach ($Lines as $Line) {
if (strpos($Line, 'addstat') !== false) {
echo $Line;
}
}
Проектирование и разработка сложных IT-систем. Вожусь с проблемными задачами.
ewg777
На сайте с 04.06.2007
Offline
225
#3

wdsg, if (strpos($Line, 'addstat')) { почему не используете? или просто личные предпочтения?

wdsg
На сайте с 09.02.2009
Offline
31
#4

ewg777, если подстрока будет расположена в начале строки, strpos вернёт позицию 0. При if (strpos(...)) этот 0 приведётся к false. Необходимо именно сравнение по типу.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий