我正在尝试为我的项目做一个URL解析器,一个非常简单的东西,就像你在浏览器中输入它并将其转换为有效的URL一样,一旦完成解析这样的URL并获取所有图像完整路径。
我能够“修复”用户输入的网址并在需要时预先挂起http,只移除上一个/开启网域(“http://www.domain.com/成为http://www.domain.com但http://www.domain.com/test/停留不变)。
我遇到的问题是dirname正在解析某些文件夹的路径。 我的代码看起来像这样:
<?php
$url = 'www.domain.com/~folder/'; //This is a variable that changes often
$url = $this->fix_url($url); //$url is now http://www.domain.com/~folder/
$url_image = 'image.png';
$parse = parse_url($url);
$dir = (isset($parse['path'])?dirname($parse['path']):'');
$ret = 'http://'.$parse['host'].$dir.'/'.$url_image;
var_dump($parse, $dir, $ret);
?>
我能解决问题的方法是使用此代码查找$dir
<?php
$path = (isset($parse['path'])?$parse['path']:'/');
$tmp = explode('/', $path);
if(is_array($tmp) && count($tmp) > 0){
array_pop($tmp);
}
$dir = implode('/', $tmp);
?>
但必须有更好的方法