15

给定以下字符串

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

我想用substror trim(或任何你觉得更合适的)来返回这个

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

也就是说,要删除-100x100. 我需要的所有图像都将其标记到文件名的末尾,紧接在扩展名之前。

在 SO re Ruby 和 Python 上似乎有对此的回应,但不是 PHP/特定于我的需求。

如何删除字符串的左侧部分?

从字符串的开头删除 n 个字符

从字符串中删除子字符串

有什么建议么?

4

4 回答 4

26

如果要匹配任何宽度/高度值:

  $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

使用的模式非常基本:

/ 表示模式的开始
- 字面 - 字符
\d+ 一个数字,1 次或多次
x 字面量 x 字符
\d+ 一个数字,1 次或多次
/ 表示模式的结束
于 2012-05-27T02:41:41.987 回答
23
$url = "http://thedude.com/05/simons-cat-and-frog-100x100.jpg";
$new_url = str_replace("-100x100","",$url);
于 2012-05-27T02:38:00.650 回答
9
$url = str_replace("-100x100.jpg", '.jpg', $url);

用于-100x100.jpg防弹解决方案。

于 2012-05-27T02:46:31.203 回答
3

如果-100x100是您尝试从所有字符串中删除的唯一字符,为什么不使用str_replace

$url = "http://thedude.com/05/simons-cat-and-frog-100x100.jpg";
str_replace("-100x100", "", $url);
于 2012-05-27T02:38:00.643 回答