2013-04-22 2 views
0

Я добавление изображений в WP сайт через шорткод:Получение ЦСИ из текста с помощью preg_match

[figure src="" url"" caption=""]

Если src является источником изображения, то url ссылка на более крупное изображение (если хотел), а caption - подпись.

Я пытаюсь получить src из выше основывая его этот код:

$pattern = '/<img[^>]*src=\"?(?<src>[^\"]*)\"?[^>]*>/im'; 
preg_match($pattern, $html, $matches); 
if($matches['src']) { 
    return $matches['src']; 
} 

Но я пытаюсь выяснить, как получить [figure] матч.

ответ

1
/\[figure((src="(?<src>[^"]+)")?|(url="(?<url>[^"]+)")?|(caption="(?<caption>[^"]+)")?)*\]/i 

[фигурное URL = "http://example.com/large.gif" заголовок = "моя подпись" SRC = "HTTP: // пример. ком/figure.gif "]

Array 
(
    [0] => [figure url="http://example.com/large.gif" caption="my caption" src="http://example.com/figure.gif"] 
    [1] => 
    [2] => src="http://example.com/figure.gif" 
    [src] => http://example.com/figure.gif 
    [3] => http://example.com/figure.gif 
    [4] => url="http://example.com/large.gif" 
    [url] => http://example.com/large.gif 
    [5] => http://example.com/large.gif 
    [6] => caption="my caption" 
    [caption] => my caption 
    [7] => my caption 
) 
+0

Это прекрасно работает, могу ли я спросить, есть ли способ отменить шаблон, чтобы просто получить src? Мне нравятся все другие варианты, но я только для src. – Ahhhhhhhhhhhhhdfgbv

+0

Мое регулярное выражение создано для соответствия атрибутам в случайном порядке. Если вам нужен только src, вы можете сопоставить с помощью '/\[figure.* src =" (? [^ "] +)". * \]/IU' вместо –

+0

Спасибо за оба выражения. – Ahhhhhhhhhhhhhdfgbv

0

Попробуйте

$foo = [figure src="" url"" caption=""]; 
preg_match('/src="([^"]*)"/i', $foo, $array) ; 
$finalStr = $array[0]; 
$explode = explode("=", $finalStr); 
echo $explode[1]; 
+0

не работает для меня. – Ahhhhhhhhhhhhhdfgbv

+0

К сожалению, я дал $ array [1]. Я обновил свой ответ с помощью $ array [0], вы можете попробовать сейчас? –

+0

Ваш ответ в настоящее время дает мне 'src = IMG.jpg', где мне нужен только' IMG.jpg' – Ahhhhhhhhhhhhhdfgbv

Смежные вопросы