我是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);
答案 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);