я не профан в регулярках но думаю что мона и так: PHP: <?php $text = ' <h2> <a href="/News/Detail/id/325474/cat/66/" > Почему опустели офисы?</a> </h2>'; preg_match('~<h2>.*<a href="(.*)" >~sUiS',$text,$reg); echo $reg['1']; ?>
Zircool, PHP: <?php $a = '<h2> <a href="/News/Detail/id/325474/cat/66/" > Почему опустели офисы?</a> </h2> '; preg_match('#<h2>.*<a.?href="(.*?)".*>.*</a>.*</h2>#', $a, $b); print_r($b); ?>
PHP: <? $in= '<h2> <a href="/News/Detail/id/325474/cat/66/" > Почему опустели офисы?</a> </h2> '; if (preg_match_all('/<h2>(.*)<\/h2>/s', $in, $result)) echo $result[1][0]; else echo 'Нету такого'; ?>
$name = '{TITLE}'; $value = 'Заголовок'; $file = preg_replace('|\{$name\}|i',$value,$file,-1); Что в регулярке неправильно составил? п.с. строковые не советовать, и так строковую использую: $file = str_replace('{'.$name.'}',$value,$file); просто хочу и с этой регуляркой разобраться
Ru}{eeZ Всяко лучше строковая функция, но если уж так хочется, то чтобы регулярка интерпретировала переменную как текст, нужно использовать preg_quote PHP: $name = '{TITLE}'; $value = 'Заголовок'; $file = preg_replace('|'.preg_quote($name).'|i',$value,$file);
а если так: $file = 'кимек иек итек кет кт д.дж.{TITLE} v,lvfrl r rv {HEADER} vvvv'; $name = 'TITLE'; $value = 'Заголовок'; $file = preg_replace('|\{$name\}|i',$value,$file,-1); мне же надо именно между фигурными скобками
PHP: <? $file = 'sdlfgsdlgldsgh ssdflksdjf {TITLE} v,lvfrl r rv {HEADER} vvv'; $name = 'TITLE'; $value = 'Заголовок'; $file = preg_replace('{'.$name.'}', $value, $file); echo $file; ?>
Переменные не подставляются в одинарных кавычках! нужно: $file = preg_replace("|\{$name\}|i",$value,$file); незачем писать -1 в четвертый параметр функции preg_replace
ппц, тупанул когда писал. не думал, что переменную повешу. Вообще забыл и ещё парился чё я типа не так делаю =\ Спасибо
прошу помощи. нужен парсер новостей http://primamedia.ru/export/main.htm (или в тхт http://primamedia.ru/export/main.txt) чтобы я мог повставлять в таблицы отдельно - дату, новость etc синтаксис прегматча оказался для меня очень сложен ( заранее благодарю
PHP: <?php //новости получаем из main.htm в переменную $news //парсим preg_match_all("/pm_newsdate'>(.+)\.<\/span>\t<a href='(.+)'>(.+)<\/a>\t<div class='pm_newsdesc'>(.+)<\/div>/isU", $news, $m); /* Результат: $m[1] - дата и время новостей $m[2] - ссылка на полный текст новости $m[3] - заголовок новости $m[4] - краткое описание новости */ print_r($m); ?>
PHP: <? $text = '<form action = "kfk">'; $text = preg_replace('/action.*=.*"[^"]*"/','action="my.php"',$text); //дальше просто смотри исходники получившейся страницы, чтобы проверить результат ?>
Лучше так: PHP: $text = preg_replace('/action[\s\S]=[\s\S]"[^"]*"/','action="my.php"',$text); UPD: Хотя нет, лучше вот так: PHP: $text = preg_replace('#action[\s]?=[\s]?"[^"]*"#', 'action="my.php"', $text);
PHP: <pre> <? $text = <<<markup <form action=http://example.com></form> <form action="http://example.com"></form> <form action='http://example.com'></form> <form action = "http://example.com"></form> <form action ="http://example.com"></form> <form action= "http://example.com"></form> markup; $pattern = <<<regexp ~action\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]*)~ regexp; $text = preg_replace($pattern, 'action="my.php"', $text); echo htmlspecialchars($text); ?> </pre>
Помогите разобраться пожалуйста, имеется вот такой конфиг - Code: root@newsystems:~# cat /var/www/.htaccess Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_URI} !php RewriteRule ^about$ index.php?action=about [L] RewriteRule ^tools$ index.php?action=tools [L] RewriteRule ^register$ index.php?action=register [L] RewriteRule ^myuploads$ index.php?action=myuploads [L] RewriteRule ^thread$ thread.php [L] RewriteRule ^feedback$ feedback.php [L] RewriteRule ^thread/([0-9]+)/?$ thread.php?id=$1 [NC] RewriteRule ^thread/([0-9]+)/([0-9]+)/?$ thread.php?id=$1&num=$2 [NC] последние 2 строки не рабочие =/ как сделать правильно?