Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Регулярки PHP (http://forum.oszone.net/showthread.php?t=287278)

salat 31-08-2014 08:30 2396489

Регулярки 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

Заранее большое спасибо. Крайне не желаю повторного закипания мозга... -_-

mrcnn 19-09-2014 14:40 2404847

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); 

Пример. Работает или нет, не проверял

salat 20-09-2014 06:11 2405055

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.

Время: 15:46.
© OSzone.net 2001-