0

我正在尝试为我的项目做一个 URL 解析器,这是一个非常简单的获取 URL,就像您在浏览器中输入它并将其转换为有效的 URL,一旦完成解析这样的 URL 并获取所有具有完整路径的图像.

我能够“修复”用户输入的 URL 并在需要时预先添加 http,仅删除域上的最后一个 /(` http://www.domain.com/变为http://www.domain.comhttp://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);
?>

但必须有更好的方法

4

0 回答 0