- -
Регулярки PHP
(
http://forum.oszone.net/showthread.php?t=287278)
Регулярки PHP
Помогите с preg_replace. Задолбался уже конкретно. Весь мануал излистал, чет все равно не получается.
В одну сторону составил, в обратную ни в какую.
PHP код:
<img src="$1" style="max-width: 780px;"/>
<div id="center">$1</div>
<a href="http://href.li/?$1" target="blank">$1</a>
<iframe width="780" height="450" src="//www.youtube.com/embed/$1" frameborder="0" allowfullscreen></iframe>
<strong>$1</strong>
Заменить соответственно на:
PHP код:
[img]$1[/img]
[center]$1[/center]
[link]$1[/link]
[video]$1[/video]
[strong]$1[/strong]
Заранее большое спасибо. Крайне не желаю повторного закипания мозга... -_-
|
PHP код:
$d1='<img src="$1" style="max-width: 780px;"/>'; $d2='<div id="center">$1</div>'; $d3='<a rel="nofollow" href="/go.php?url=http://href.li/?$1" target="blank">$1</a>'; $d4='<iframe width="780" height="450" src="//www.youtube.com/embed/$1" frameborder="0" allowfullscreen></iframe>'; $d5='<strong>$1</strong>';
preg_replace('<img.*?"(.*?)".*?>', '[img]$1[/img]', $d1); preg_replace('<div.*?"(.*?)">(.*?)<.*', '[$1]$2[/$1]', $d2); preg_replace('<a href.*?>(.*?)<.*', '[link]$1[/link]',$d3); preg_replace('<iframe.*?embed/(.*?)".*?>', '[video]$1[/video]', $d4); preg_replace('<strong>(.*?)</(.*?)>/', '[$2]$1[/$2]', $d5);
Пример. Работает или нет, не проверял
|
mrcnn, ЖеСть АцКаЯ! xD Испугался когда увидел, но все равно спасибо за попытку помочь :)
Правильный ответ:
PHP код:
$replace = array( '~<u>(.*?)</u>~is' => '[u]\1[/u]', '~<i>(.*?)</i>~is' => '[i]\1[/i]', '~<strong>(.*?)</strong>~is' => '[strong]\1[/strong]', '~<img\s[^>]*\bsrc="([^"]+)".*?/>~is' => '[img]\1[/img]', '~<a\s[^>]*\bhref="href.li/\?([^"]+)".*?</a>~is' => '[link]http://\1[/link]', '~<iframe\s[^>]*\bsrc=".*youtube.com/embed/?([^"]+)".*?</iframe>~is' => '[video]http://www.youtube.com/watch?v=\1[/video]', '~<div\s+id="center">(.*?)</div>~is' => '[center]\1[/center]', );
$out = preg_replace(array_keys($replace), array_values($replace), $in);
|
Время: 15:46.
© OSzone.net 2001-