在php中替换urlpath

时间:2012-11-01 12:24:36

标签: php

我是php的新手。

我将默认图像路径设为\ xampp \ htdocs \ Sample \ tmp / one.jpg

我必须用http:\ localhost

替换\ xampp \ htdocs

如果我以这种方式使用,我将获得所需的输出

$absolute = "\xampp\htdocs";
$relative = "http:\\localhost";
$imagepathurl = "\xampp\htdocs\Sample\tmp\/safety-masks_5092610ad4f3f.jpg";

echo str_replace($absolute,$relative,$imagepathurl);

但我从数据库中获取$ imagepathurl。如果我在相同的格式中使用它,我没有得到结果

$absolute = "\xampp\htdocs";
$relative = "http:\\localhost";

$imagepathurl = '"'.$imagepath.'"';
echo str_replace($absolute,$relative,$imagepathurl);

3 个答案:

答案 0 :(得分:0)

"之前和之后添加$imagepath时,在secound列表中?

删除此行$imagepathurl = '"'.$imagepath.'"';,它应该有效:

$absolute = "\xampp\htdocs";
$relative = "http:\\localhost";

echo str_replace($absolute,$relative,$imagepath);

更新(示例代码行)

$var = "MyString";   // Content of the String => MyString
$var = '"'.$var.'"'; // Content of the String => "MyString"

答案 1 :(得分:0)

使用函数pathinfo获取一个数组,其中包含路径的所有组件。

然后,您可以替换要更改的部件,并再次连接路径组件以获取所需的新路径。

在其他帖子中评论的方式只是一个字符串操作解决方案。如果在处理解析路径时想要安全的东西,则应使用php函数pathinfo。如果有一些非常简单,那么str_replace将完成工作。

答案 2 :(得分:0)

确保您的数据库不对字符串应用任何字符编码(如果它应用任何字符串编码),然后首先解码sting值,然后使用此代码。

$absolute = "C:\xampp\htdocs";
$relative = "http:\\localhost";
// if database contains encoded string decode first here
//creating absolute path for image (this will remove ./, ../ \, / to create operating system preferred path as windows uses \ and linuz user / as path separator ) 
$imagepathurl = realpath($imagepathurl);
// replasing absolute path to root directory with relative path
echo str_replace( $absolute , $relative , $imagepathurl);