Php 为所有内部URL添加后缀

Php 为所有内部URL添加后缀,php,regex,preg-replace,Php,Regex,Preg Replace,我需要在我的站点上所有内部URL的末尾添加一个后缀?hl=foo 我不确定最好的方法是什么,因为有一些复杂的情况,比如 <a href="http://www.example.com">My Site</a> <a target="_blank" href="http://www.example.com">My Site</a> <a class="a-class" href="http://www.example.com">My Si

我需要在我的站点上所有内部URL的末尾添加一个后缀?hl=foo

我不确定最好的方法是什么,因为有一些复杂的情况,比如

<a href="http://www.example.com">My Site</a>
<a target="_blank" href="http://www.example.com">My Site</a>
<a class="a-class" href="http://www.example.com">My Site</a>

PHP

只需创建一个在源代码中回显的变量

例如:

<?php $my_get = "?hl=foo"; ?>

<a href="http://mysite.com<?=$my_get?>"> Yadda </a>

使用Javascript更改每个的href属性:

  • 获取所有元素(getElementsByTagName('a'))
  • 对它们运行foreach循环
  • 在foreach中,连接现有的href()和?hl=f00
  • 请尝试以下方法:

    
    

    但我不认为它适用于绝对URL。

    我不能这样做,因为我使用的CMS比较复杂。不过,我可以在CMS完成一点后运行PHP。例如preg_替换。
    <?php
        ob_start();
        output_add_rewrite_var('hl', 'foo');
    ?>
    <a href="/">My Site</a>
    <a target="_blank" href="/">My Site</a>
    <a class="a-class" href="/">My Site</a>