如何使用PHP提取子字符串

时间:2010-03-27 10:24:19

标签: php string

PHP初学者的问题。

我需要在管理员后端的数据库中保留以下图像路径。

../../../../assets/images/subfolder/myimage.jpg

但是我需要前端的图像路径如下。

assets/images/subfolder/myimage.jpg

通过PHP更改此功能的最佳方法是什么?

我想到了substr(),但我想知道是否有更好的方法。

提前致谢。

4 个答案:

答案 0 :(得分:0)

您应该将图片路径保存在应用程序变量中,并且可以从管理员和前端访问

答案 1 :(得分:0)

如果../../../../已修复,则substr将起作用。如果没有,请尝试这样的事情:

newpath=substr(strpos(path, "assets"));

答案 2 :(得分:0)

起初看起来似乎是一个奇怪的选择,但你可以使用ltrim。在以下示例中,将从../的开头删除所有$path。 第二个参数中的点必须被转义,因为PHP会将它们视为一个范围。

$path = ltrim('../../../../assets/images/subfolder/myimage.jpg', '\\.\\./');

$path将成为:

assets/images/subfolder/myimage.jpg

答案 3 :(得分:0)

我建议这个

$path = "../../../../assets/images/subfolder/myimage.jpg";
$root = "../../../../";

$root_len = strlen($root);

if(substr($path, 0, $root_len) == $root){
    echo substr($path, $root_len);
} else {
    //not comparable
}

通过这种方式,您可以控制哪个目录作为图像的根目录