PHP одинарные кавычки регулярное выражение - PullRequest
2 голосов
/ 18 августа 2010

Эта тема является замечанием для PHP get image src

Итак, у нас есть переменная с кодом внутри (только изображение):

$image = "<img src='http://www.gravatar.com/avatar/66ce1f26a725b2e063d128457c20eda1?s=32&d=identicon&r=PG' height='32' width='32' alt=''/>";

Как мы можем получить src этого изображения? Мы должны выбросить его в новую переменную.

Хотите использовать регулярные выражения, пробовал это (не работает):

preg_match('@src=\'([^"]+)\'@', $image, $src);

Проблема в том, что вместо двойных кавычек есть одинарные кавычки.

Наконец, мы должны получить:

$src = 'http://www.gravatar.com/avatar/66ce1f26a725b2e063d128457c20eda1?s=32&d=identicon&r=PG';

Поиск истинного регулярного выражения.


Если я использую '@src=\'([^"]+?)\'@', print_r($src) дает:

Array (
[0] => src='http://www.gravatar.com/avatar/66ce1f26a725b2e063d128457c20eda1?s=32&d=identicon&r=PG'
[1] => http://www.gravatar.com/avatar/66ce1f26a725b2e063d128457c20eda1?s=32&d=identicon&r=PG
)

Не нужно первое значение в массиве.

Спасибо.

1 Ответ

3 голосов
/ 18 августа 2010

Выражение [^"]+ является жадным. Чтобы он прекратил совпадение, как только будет достигнут ', используйте [^"]+?.

Полагаю, вы имели в виду [^']+. Написание этого также решит вашу проблему.

Наконец, присвойте $src $src[1], чтобы получить первое сгруппированное выражение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...