Ru-Board.club
← Вернуться в раздел «Web-программирование»

» PHP: Регулярные выражения (RegExp, Regular, eregi, preg)

Автор: ForposT_ForeveR
Дата сообщения: 11.01.2009 14:44
Здравствуйте.
Подскажите пожалуйста, как вырезать из кода, посредством РНР!


Код... код...код...
<p><strong>Pages:</strong> 1 <a href="http://site.ru/?page_id=3&amp;page=2">2</a> <a href="http://site.ru/?page_id=3&amp;page=3">3</a> и т.д.
Код..код...код...

Вопрос, как спарсить номер последней страницы.

Спасибо за помощь.
Автор: SAOD
Дата сообщения: 11.01.2009 15:33
ForposT_ForeveR

Код:
preg_match_all('#<a href="http://site.ru/\?page_id=3&amp;page=[0-9]+">([0-9]+)#', $test, $prega);
echo $prega[1][count($prega[1])-1];
Автор: Nukedx
Дата сообщения: 12.01.2009 11:04
Здравствуйте!

Подскажите пожалуйста, как вырезать вот из такого кода:

Цитата:
...
<p align="center">&nbsp;</p>
     <div align="center"><br />
     <div id="flash_video"><embed src="http://site/flvplayer.swf" width="685" height="525" allowfullscreen="true" wmode="opaque" flashvars="&file=http://bl.rutube.ru/7e5ce8095cb17c0c6c77b473a0de24ec.flv&displaywidth=685&displayheight=525&FFFF
&image=http://i015.radikal.ru/0802/66/2e8ea7e15cce.jpg"></embed></div>
...


только http://bl.rutube.ru/7e5ce8095cb17c0c6c77b473a0de24ec.flv

мой пример: preg_match_all("#http(.*?)flv#ims", $text, $matches);
но это не совсем верно
Автор: eternal2000
Дата сообщения: 12.01.2009 13:00
Nukedx
$text = 'p align="center">&nbsp;</p>
<div align="center"><br />
<div id="flash_video"><embed src="http://site/flvplayer.swf" width="685" height="525" allowfullscreen="true" wmode="opaque" flashvars="&file=http://bl.rutube.ru/7e5ce8095cb17c0c6c77b473a0de24ec.flv&displaywidth=685&displayheight=525&FFFF
&image=http://i015.radikal.ru/0802/66/2e8ea7e15cce.jpg"></embed></div> ';

preg_match('%file=(.*(.flv))%i', (strstr($text, 'file=')), $flv);
echo $flv[1];
Автор: Nukedx
Дата сообщения: 12.01.2009 13:56
eternal2000

Класс! работает, спасибо
Автор: eternal2000
Дата сообщения: 12.01.2009 17:05
Nukedx
пожалста
Автор: Dunce
Дата сообщения: 22.01.2009 15:37
Начал знакомиться с РВно так и не смог выполнить одну операцию.

Необходимо заменить найденые РВями строки на другой текст (replace)

есть текст выполненный в виде тегов (все обязательно закрыты)

<w1>a<w3>b</w3>c</w1>
<w1>d<w3>e</w3>f</w1>

т.е. имеются теги w1 и w3 ну и некоторые данные.
необходимо полностью заменить теги w3 кроме тех внутри которых заключен тег w1 т.е.
<w1>a<w3>b<w1>c</w1>d</w3>e</w1>

как пример должно работать так:
в тексте
<w1>a<w3>b</w3>c</w1>d <w1>e<w3>f<w1>g</w1>h</w3>i</w1>
заменить <w3>...</w3> на REPL
<w1>aREPLc</w1>d <w1>e<w3>f<w1>g</w1>h</w3>i</w1>

Автор: kivan
Дата сообщения: 23.01.2009 10:20
Dunce

Код:
<?php
$subject = '<w1>a<w3>b</w3>c</w1>d <w1>e<w3>f<w1>g</w1>h</w3>i</w1>';
$result = preg_replace('%<w3>\w+</w3>%', 'REPL', $subject);
print htmlentities($result);
?>
Автор: STEEL
Дата сообщения: 25.01.2009 20:16
Есть такого плана текстовый файлик,

Temp: 60
Heiu: 765.4

Как мне выдергнуть только значения 60, 765.4
Автор: Cheery
Дата сообщения: 25.01.2009 22:03
STEEL

Цитата:
Temp: 60

/(.*):\s+([0-9\.]+)/
будет массив.. в первом название, во втором значение
а можно и просто split строчку по : и потом применить trim - без каких либо регулярок.
Автор: Z4masko
Дата сообщения: 31.01.2009 20:22
Подскажите,
[начало строки] - это начало строки вообще
есть строки вида:

[начало строки]Лялялля (№
[начало строки]Лололол (№
[начало строки]Хехехех (№

Как с помощью регулярного выражения выцепить "Лялялля" например
То есть нужно выцепить все символы от начала строки до последовательности: (№
Автор: Cheery
Дата сообщения: 31.01.2009 20:27
Z4masko

Цитата:
То есть нужно выцепить все символы от начала строки до последовательности: (№

читаете строку, разбиваете с помощью split по вашему символу. даже регулярка не нужна
Автор: Zakkazak
Дата сообщения: 02.02.2009 18:03
Опять судьба забрасывает меня к веб програмистам, хотя к ним я имею самое отдаленное отношение

Как обозначить Enter, надо заменить
ААА
на
ВВВ
ААА
Автор: Cheery
Дата сообщения: 02.02.2009 18:06
Zakkazak

Цитата:
Как обозначить Enter, надо заменить
ААА
на
ВВВ
ААА

а нормальным языком? какой Enter и при чем тут он?
в одном файле?
Автор: Zakkazak
Дата сообщения: 02.02.2009 18:23
Есть WCMD_ENG.ini , есть текстовой редактор, который вроде понимает регулярные выражения.
Надо в ini файле заменить:
cmd=http
на
cmd=D:\SOFTWARE\www\OperaAC\OperaAC.exe
param=http


Добавлено:

Цитата:
какой Enter и при чем тут он
клавиша Ввод, замена будет не в пределах однойстроки
Автор: Cheery
Дата сообщения: 02.02.2009 18:44
Zakkazak

Цитата:
есть текстовой редактор, который вроде понимает регулярные выражения.

вы название темы читаете? PHP, а не "регулярные выражения какого то редактора".
если вам замену сделать в одном файле, а не в куче или на получаемых данных, то почему не сделать замену в любом текстовом редакторе? и если он поддерживает регулярки, то спросить в теме по данному редактору в разделе Программы?
Автор: Zakkazak
Дата сообщения: 02.02.2009 19:37

Цитата:
"регулярные выражения какого то редактора"

Таких тем нет.
Поиск по всему Руборду выдал ссылки только в этот подфорум к моему большому сожалению. Поэтому вопрос и был задан здесь.
Автор: Cheery
Дата сообщения: 02.02.2009 19:54
Zakkazak

Цитата:
Таких тем нет.

создайте тему по программе в разделе программы
Автор: ForposT_ForeveR
Дата сообщения: 28.02.2009 20:04
Здравствуйте.
Подскажите пожалуйста, как получить содержимое заключенное между
от
<h2 style="color:black; margin-left:0;">Картина:
до
</div></div></div>
Заранее огромное спасибо за помощь.
Автор: SAOD
Дата сообщения: 28.02.2009 21:17
ForposT_ForeveR

Код:
$test='<h2 style="color:black; margin-left:0;">Картина:содержимое которое хотим получить</div></div></div>';
preg_match('#<h2 style="color:black; margin-left:0;">Картина:(.+?)</div></div></div>#s', $test, $preg);
echo $preg[1];
Автор: ForposT_ForeveR
Дата сообщения: 01.03.2009 17:57
Спасибо, помогло.


Ещё вопросик, подскажите пожалуйста, есть текст в переменной $text, в нём 4 абзаца. (тег <p>) Как разделить эти абзацы в разные переменные?
Буду очень признателен.
Автор: kivan
Дата сообщения: 02.03.2009 12:15
ForposT_ForeveR

Код:
$pieces = explode("<p>", $text);
print_r($pieces);
Автор: eternal2000
Дата сообщения: 02.03.2009 15:41
в таком случае первая переменная будет пустой, и во все переменные в конце текста добавится "</p>" если такой вариант устраивает, то можно просто при выводе или вставке этих переменных просто скоращать их длину на 4 символа, т.е. образать с конца) но корректно это будет робить только при условии что закрывающий тэг всегда будет в таком виде
Автор: Cheery
Дата сообщения: 02.03.2009 20:02

Цитата:
в таком случае первая переменная будет пустой,


Цитата:
$pieces = preg_split("/<p>/i", $text, -1, PREG_SPLIT_DELIM_CAPTURE);

так будет с разделителями

Цитата:
то можно просто при выводе или вставке этих переменных просто скоращать их длину на 4 символа, т.е. образать с конца) но корректно это будет робить только при условии что закрывающий тэг всегда будет в таком виде

проще уж добавлять спереди. да и потом - нужно определиться.. нужен ли текст только между <p> и </p>
тогда
/<p>(.*?)<\/p>/i
как то вот так
Автор: eternal2000
Дата сообщения: 03.03.2009 09:08

Цитата:
/<p>(.*?)<\/p>/i

это самый лучшый вариант, и дальше брать результаты из массива и в конце и вначале доавить тэги если нужно
Автор: Z4masko
Дата сообщения: 04.03.2009 13:12
Подскажите плиз решение:
Есть строка например:

Код:
c:\download\catalog\
Автор: Cheery
Дата сообщения: 04.03.2009 18:56
Z4masko

Цитата:
Подскажите регулярноетвыражение, с помощью которого это можно сделать

зачем?
сделайте split по / и последний (или предпоследний) элемент массива
Автор: eternal2000
Дата сообщения: 05.03.2009 13:59
ну или по explode с разделителем '\'
Автор: ForposT_ForeveR
Дата сообщения: 12.03.2009 23:29
Добрый вечер.
Подскажите пожалуйста, как спарсить контент на страничке
__edimdoma.ru/recipt_print.php?idr=1
От заголовка, до конца текста.
Заранее огромное человеческое спасибо.

Автор: ForposT_ForeveR
Дата сообщения: 18.03.2009 23:04
Здравствуйте.
Ребята подскажите пожалуйста регулярное выражение под РНР, для того чтобы удалить ссылки <a href>оставить этот контент </a>,но оставить то что заключено между тегами <a> и </a>
Заранее спасибо.

Страницы: 12345678910111213141516171819202122232425262728293031323334

Предыдущая тема: Xitami Web Server + PHP+ zend optimizer


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.