相对于字符串中包含的绝对链接的更改

时间:2013-07-17 09:22:34

标签: php javascript jquery dom

我有PHP变量保持字符串,我有混合内容有链接和其他包含图像链接,如下所示

$baseurl = "http://www.myweb.com/home/";
$content = "<a href="#"><img src="images/comment.gif" alt="Comment" /></a></p>
           <div class="thirds"> <p><b><a  href="admin/local.html" class="title">Manage your content</a></b><br /><img src ="subfolder/home.jpg" alt="home" />Lorem ipsum dolor sit amet esta pa, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt....";

我的目标是回显变量'content',其所有带有标签的链接,src标签,修改为绝对意义,因为包含的第一个$ content链接必须是<a href="http://www.myweb.com/home/#"这应该对所有图像都相同<img src="images/comment.gif的示例应为<img src="http://www.myweb.com/home/images/comment.gif alt="Comment" /> ..请注意,请注意,所有内容都包含在php字符串变量中。

3 个答案:

答案 0 :(得分:0)

您可以将$baseurl添加到src之前。 也可以在字符串中更改“to'以便使用”。或者如果你使用heredoc会更好。

$baseurl = "http://www.myweb.com/home/";
$content = '<a href="'. $baseurl . '#"><img src="'. $baseurl . 'images/comment.gif" alt="Comment" /></a></p>
       <div class="thirds"> <p><b><a  href="admin/local.html" class="title">Manage your content</a></b><br /><img src ="'. $baseurl . 'subfolder/home.jpg" alt="home" />Lorem ipsum dolor sit amet esta pa, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt....';

答案 1 :(得分:0)

尝试这个(快速和肮脏的方式,但可能比regexp更快):

str_replace("href=\"", "href=\"".$baseurl, $content);
str_replace("href=\'", "href=\'".$baseurl, $content);
str_replace("src=\"", "src=\"".$baseurl, $content);
str_replace("src=\'", "src=\'".$baseurl, $content);

答案 2 :(得分:0)

您有两种方式:

  1. 服务器端,通过php,用正则表达式替换字符串(我不知道)。

  2. 浏览器方面,通过jquery:

    var baseurl = "http://www.myweb.com/home/";
    $("#container [src]").prop("src",function(index,oldValue){
        return baseurl+oldValue;
    });
    
    $("#container [href]").prop("href",function(index,oldValue){
        return baseurl+oldValue;
    });
    
  3. 将更多属性放入数组并在for循环中执行它们很容易。

    “container”是包含您的内容的dom元素的id。就像这样:

    <div id="container">
       <a href="#"><img src="images/comment.gif" alt="Comment" /></a></p>
           <div class="thirds"> <p><b><a  href="admin/local.html" class="title">Manage your content</a></b><br /><img src ="subfolder/home.jpg" alt="home" />Lorem ipsum dolor s...
    </div>