如何使用PHP提取子字符串
PHP初学者的问题 我需要在数据库中为管理员后端保留如下图像路径如何使用PHP提取子字符串,php,string,Php,String,PHP初学者的问题 我需要在数据库中为管理员后端保留如下图像路径 ../../../../assets/images/subfolder/myimage.jpg 然而,我需要的图像路径如下前端 assets/images/subfolder/myimage.jpg 用PHP改变这一点的最好方法是什么 我考虑过substr,但我想知道是否有更好的方法 提前感谢。您应该将映像路径保存在应用程序变量中,并且可以从管理员和前端访问。如果../../../../../../../.已修复,则subst
../../../../assets/images/subfolder/myimage.jpg
然而,我需要的图像路径如下前端
assets/images/subfolder/myimage.jpg
用PHP改变这一点的最好方法是什么
我考虑过substr,但我想知道是否有更好的方法
提前感谢。您应该将映像路径保存在应用程序变量中,并且可以从管理员和前端访问。如果../../../../../../../.已修复,则substr将工作。如果没有,请尝试以下方法:
newpath=substr(strpos(path, "assets"));
一开始这似乎是一个奇怪的选择,但你可以使用它。在下面的示例中,将从$path开头删除所有../。 第二个参数中的点必须转义,否则PHP会将它们视为一个范围
$path = ltrim('../../../../assets/images/subfolder/myimage.jpg', '\\.\\./');
$path将是:
assets/images/subfolder/myimage.jpg
我建议这样做
$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
}
这样,您就可以控制哪个目录作为您的图片的根?
,您可以更具体地描述目录结构吗?如何将../../../../../../../assets转换为资产?你的根目录和基目录是什么?或者你只是想替换那些精确的值?为此,有一个stru_replace:否则,我认为我们需要更多的信息。为什么后端和前端需要不同的路径?为什么不只使用一个路径并使用前缀对其进行调整呢?请注意,ltrim的第二个参数表示应该删除的字符列表。