Вопрос по php, string – Как удалить подстроку из строки, используя PHP?

12

Учитывая следующую строку

http://thedude.com/05/simons-cat-and-frog-100x100.jpg

Я хотел бы использоватьsubstr или жеtrim (или что вы считаете более подходящим), чтобы вернуть это

http://thedude.com/05/simons-cat-and-frog.jpg

то есть, чтобы удалить-100x100, Все изображения, которые мне нужны, будут помечены в конце имени файла непосредственно перед расширением.

Похоже, что есть ответы на это на SO re Ruby и Python, но не на PHP / специально для моих нужд.

Как удалить левую часть строки?

Удалить n символов из начала строки

Удалить подстроку из строки

Какие-либо предложения?

@minitech - добавлено несколько ссылок в OP pepe
Планируете ли вы жестко закодировать значение подстроки? Или вы хотите соответствовать любой форме -WIDTHxHEIGHT.ext подстроки? Mihai Stancu
Не могли бы вы ссылаться на найденные версии Ruby и Python? Методы, используемые там, вероятно, актуальны. Ry-♦

Ваш Ответ

4   ответа
25

  $path = "http://thedude.com/05/simons-cat-and-frog-100x100.jpg";

  // http://thedude.com/05/simons-cat-and-frog.jpg
  echo preg_replace( "/-\d+x\d+/", "", $path );

Демо-версия:http://codepad.org/cnKum1kd

Используемая модель довольно проста:

/     Denotes the start of the pattern
-     Literal - character
\d+   A digit, 1 or more times
x     Literal x character
\d+   A digit, 1 or more times
/     Denotes the end of the pattern
Error: User Rate Limit Exceeded pepe
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded pepe
3

-100x100 единственные символы, которые вы пытаетесь удалить из всех своих строк, почему бы не использоватьstr_replace?

$url = "http://thedude.com/05/simons-cat-and-frog-100x100.jpg";
str_replace("-100x100", "", $url);
Error: User Rate Limit Exceeded pepe
16
$url = "http://thedude.com/05/simons-cat-and-frog-100x100.jpg";
$new_url = str_replace("-100x100","",$url);
8
$url = str_replace("-100x100.jpg", '.jpg', $url);

-100x100.jpg для пуленепробиваемого решения.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы