Как удалить подстроку из строки с помощью PHP?
Учитывая следующую строку
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 символов из начала строки
Удалить подстроку из строки
Любые предложения?
Ответы
Ответ 1
Если вы хотите соответствовать любым значениям ширины/высоты:
$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
Ответ 2
$url = "http://thedude.com/05/simons-cat-and-frog-100x100.jpg";
$new_url = str_replace("-100x100","",$url);
Ответ 3
$url = str_replace("-100x100.jpg", '.jpg', $url);
Используйте -100x100.jpg
для пуленепробиваемого решения.
Ответ 4
Если -100x100
- единственные символы, которые вы пытаетесь удалить из всех ваших строк, почему бы не использовать str_replace
?
$url = "http://thedude.com/05/simons-cat-and-frog-100x100.jpg";
str_replace("-100x100", "", $url);