问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PHP 如何把 网页文件中的相对路径替换成 绝对路径?

发布网友 发布时间:2022-04-28 07:52

我来回答

4个回答

懂视网 时间:2022-04-28 12:14

我们可以通过preg_replace()函数来实现相对路径转绝对路径。

(推荐学习:php教程)

函数介绍

preg_replace() 函数执行一个正则表达式的搜索和替换。

函数语法

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

搜索 subject 中匹配 pattern 的部分, 以 replacement 进行替换。

参数说明:

  • $pattern: 要搜索的模式,可以是字符串或一个字符串数组。

  • $replacement: 用于替换的字符串或字符串数组。

  • $subject: 要搜索替换的目标字符串或字符串数组。

  • $limit: 可选,对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)。

  • $count: 可选,为替换执行的次数。

  • 返回值

    如果 subject 是一个数组, preg_replace() 返回一个数组, 其他情况下返回一个字符串。

    如果匹配被查找到,替换后的 subject 被返回,其他情况下 返回没有改变的 subject。如果发生错误,返回 NULL。

    代码实现:

    //相对路径转化成绝对路径
    <?
    function relative_to_absolute($content, $feed_url) { 
    preg_match('/(http|https|ftp):///', $feed_url, $protocol); 
    $server_url = preg_replace("/(http|https|ftp|news):///", "", $feed_url);
    //开源OSPhP.COM.CN
    $server_url = preg_replace("//.*/", "", $server_url); 
     if ($server_url == '') { 
     return $content; 
     } 
     if (isset($protocol[0])) {
    //开源代码OSPhP.COm.CN
    $new_content = preg_replace('/href="//', 'href="'.$protocol[0].$server_url.'/', $content); 
    $new_content = preg_replace('/src="//', 'src="'.$protocol[0].$server_url.'/', $new_content); //开源OSPhP.COM.CN
     } else { 
    $new_content = $content; 
     } 
     return $new_content; 
    } 
    ?>

    热心网友 时间:2022-04-28 09:22

    这个要根据你的实际情况来看,如果你的文件内的所有已经设置了的绝对路径都相同,则可以先把所有的绝对路径替换为空

    查找内容
    <a
    href="
    www.qq.com/
    替换内容
    <a
    href="

    然后再按照楼上的方法,用

    查找内容
    <a
    href="
    替换内容
    <a
    href="
    www.qq.com/

    倘若你的绝对路径有不同的,方法也可用,先多次把已经有的绝对路径转换为空(即上面的第一步),最后再用一次第二步.

    特殊情况特殊对待,一切还要根据你的实际情况来处理.这里只是一点建议,希望对你有帮助

    热心网友 时间:2022-04-28 10:40

    先更正提问人的问题
    <a
    href="
    www.qq.com/index.php">
    主页</a>”
    应该写成<a
    href="
    http://www.qq.com/index.php">

    有些网站也不全是http开头的
    你的需求是根据url的是否是相对路径
    如果是相对路径则加上域名头
    function
    get_path($path)
    {

    if(preg_match('/[a-zA-Z]\:\/\//i',
    $path))

    {

    return
    $path;

    }else

    {
    return
    '
    http://www.qq.com/'.$path;

    }
    }
    echo
    get_path('index.html');

    热心网友 时间:2022-04-28 12:14

    在你所使用的工具中的“编辑”菜单里选择查找和替换
    查找内容
    <a
    href="
    替换内容
    <a
    href="
    www.qq.com/

    别选“全部替换”,你得挨个查找替换,这是最简单的方式。
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    微信是哪一年开始普及的 河北省承德市隆化县有哪些高级中学 孕期喝茶对胎儿有影响吗 怀孕三个月能喝红茶吗 广安御溪湖畔有多少户? 广安御溪湖畔在什么位置? 广安御溪湖畔容积率是多少? 长春市第六中学学校优势 长春市第六中学介绍 长春六中教育怎么样?? php设置了不记录缓存,带在火狐浏览器下,background-image里面的图片没有改变 怎么让google浏览器不在网页上缓存东西呀?一退出就清空的那种 谁回答对了,我TM再加100分 急!!!! 请教各位如何让phpcms无缓存功能这事苦恼中 web系统每次发布新版本,必须清理浏览器缓存怎么解决 thinkphp怎么设置不缓存,我一打开控制器的视图。就自动调用缓存。 php接收不到post发送的值(新手问题) html post的内容php接受不到 thinkphp接收不到ajax传递的post数据 PHP中有几种主要的数据类型,通俗的解释一下他们 Win10 office2019 怎么变成深色模式 Apache2.2搭建PHP时出现的问题,系统是WIN7,32位的。刚刚安装后可以用,改了路径后就不行了 PHP出现undefined错误 运行以下php代码,为什么会出现一个致命错误?为什么? 论坛出现php fatal error致命错误 php出现这类怎么解决 在html里面写入php代码出现了错误 是怎么回事 大神们来帮我看看啊 php系统访问时出现错误代码ERR_CONNECTION_REFUSED该怎么处理? php segmentation fault怎么解决 linux服务器32位 PHP5.3.8 怎么安装zend guard loader,搞了半天没成功 win2008服务器怎么安装php php如何将相对路径转换为绝对路径 php为什么相对路径转成绝对路径 PHP数据采集问题(相对地址转绝对地址) php如何将硬路径(物理路径)转换成绝对路径或相对路径呢? php 如何将绝对路径转换成当前文件相对路径,URL转URI PHP绝对路径的问题 php相对路径转成绝对路径哪个好 求救,哪个大神能帮我将一下php代码的相对路径&quot;log.txt&quot;改为绝对路径的&#47;mnt&#47;1.txt PHP的include的相对路径和绝对路径问题一般都怎么解决的 html文件中如何把相对路径转成绝对路径 php批量把一个file_get_contents的内容中的所有相对路径替换为绝对路径 搭建本地服务器,包含外部网页,对方源码都是相对路径,如何变成绝对路径! 不然我访问到的内容路径不对! 如何把抓取网页的相对路径变成绝对路径,比如抓取的网页内容中的链接是a&#47;2&#47;image&#47;2.html, [php]相对路径和绝对路径 ..&#47; ..&#47;..&#47; .&#47; &#47; 还有不写, 这几种都是哪些路径啊,有点晕 dedecms5.7相对路径改成绝对路径 批处理相对路径怎么转换为绝对路径 php相对地址与绝对地址问题。 压缩包方式安装php时,php.ini如何修改; extension_dir PHP生成cookie并设置cookie 为晚上0点就失效 如何把字符串最终转换为浮点数