2012-06-26 2 views
0

У меня есть «запросы» в базе данных, из которой мне нужно извлечь имя изображения - оно всегда будет .jpg, но количество символов в имени может меняться, поэтому Я уклоняюсь от substr().Возврат подстроки, когда значения могут быть разными

Значение выглядит так: «Добавлено 545_4.jpg в фотоальбом, The British Open».

«Добавлено» всегда будет там, и «в фотоальбом» всегда будет, но название альбома отличается.

Основываясь на руководстве, я догадался, что символ% означает более одного символа, поэтому я попытался представить это, чтобы представить варианты фотоальбомов. Итак, я закончил с этим, но ничего не случилось, потому что он просто отгоняет исходную строку.

$emij = str_replace('Added','', 
     str_replace(' to Photo Album%', '', $thisTask[0]['request'])); 
echo $emij; 

Любая помощь очень ценится.

+0

так что вы на самом деле просто хочу * .jpg? –

+0

нет, в приведенном выше случае мне понадобилось бы «545_4.jpg» – jgravois

+0

um вот что я только что сказал –

ответ

1

Регулярное выражение будет работать лучше всего для этого:

preg_match("/Added (.*?) to Photo Album, (.*?)/",$thisTask[0]['request'],$m); 
// $m[1] is now the filename 
// $m[2] is the name of the album 
+0

Я получил a «Сообщение: неопределенная переменная: m» и нет вывода – jgravois

+0

Я забыл заменить замену на совпадение ... отлично работает сейчас. Благодаря!!! – jgravois

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