Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP、javascript或jQuery使图像中的所有相对路径URL成为完整路径_Php_Javascript_Jquery_String - Fatal编程技术网

使用PHP、javascript或jQuery使图像中的所有相对路径URL成为完整路径

使用PHP、javascript或jQuery使图像中的所有相对路径URL成为完整路径,php,javascript,jquery,string,Php,Javascript,Jquery,String,我想获取页面上的任何url,主要是为了修复不显示的图像,如果是相对的,则将其从相对更改为绝对 例如: 从 至/folder/folder/image.jpg/> 因为我要插入的域部分是一个PHP代码段,所以无论哪种方法最适合它,都是最理想的。谢谢。您只需获取所有img元素并将src更改为document.url+img.src即可。在JavaScript中应该非常简单。我认为这里更大的问题是,为什么你在相对URL上遇到麻烦?如果您想动态加载来自不同域或类似域的图像,那么可以 如果需要在页面加载时

我想获取页面上的任何url,主要是为了修复不显示的图像,如果是相对的,则将其从相对更改为绝对

例如:

至/folder/folder/image.jpg/>


因为我要插入的域部分是一个PHP代码段,所以无论哪种方法最适合它,都是最理想的。谢谢。

您只需获取所有img元素并将src更改为document.url+img.src即可。在JavaScript中应该非常简单。我认为这里更大的问题是,为什么你在相对URL上遇到麻烦?如果您想动态加载来自不同域或类似域的图像,那么可以

如果需要在页面加载时执行此操作,那么最好在用于呈现html的任何内容中构建url服务器端


这里有更多关于如何在JS中实现的信息和代码示例

您只需获取所有img元素并将src更改为document.url+img.src即可。在JavaScript中应该非常简单。我认为这里更大的问题是,为什么你在相对URL上遇到麻烦?如果您想动态加载来自不同域或类似域的图像,那么可以

如果需要在页面加载时执行此操作,那么最好在用于呈现html的任何内容中构建url服务器端


这里有更多关于如何在JS中实现的信息和代码示例

使用JQuery,您可以使用.attr来更改src字符串。如果没有ID属性,则很难捕获正确的img标记。在附加当前站点之前,您必须检查www.的每个src字符串,以查看是否已经存在站点引用

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/lib/jquery/1.7.2/jquery.min.js"></script>
 <script type="text/javascript">
 $(document).ready(function(){
 $("img").each(function(){
      if($(this).prop("src").toLowerCase().indexof("www.") != -1){
           $(this).attr('src', document.domain + $(this).prop("src"));
      }
 )};
 </script>

我认为最困难的部分是确定哪些img标记需要更改。

使用JQuery,您可以使用.attr来更改src字符串。如果没有ID属性,则很难捕获正确的img标记。在附加当前站点之前,您必须检查www.的每个src字符串,以查看是否已经存在站点引用

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/lib/jquery/1.7.2/jquery.min.js"></script>
 <script type="text/javascript">
 $(document).ready(function(){
 $("img").each(function(){
      if($(this).prop("src").toLowerCase().indexof("www.") != -1){
           $(this).attr('src', document.domain + $(this).prop("src"));
      }
 )};
 </script>
我认为最困难的部分是确定哪些img标签需要更改。

使用jquery:

$(function () {
    $('img').each(function () {
        if (this.src.indexOf('http://') === -1) this.src = "http://mysite.com" + this.src;
    });
});
使用jquery:

$(function () {
    $('img').each(function () {
        if (this.src.indexOf('http://') === -1) this.src = "http://mysite.com" + this.src;
    });
});

为此使用正则表达式:

$text = '<img src="abc" /> asiodn <img src="dev" />'; //e.g.
$regex = '/<img src="([^https?:\/\/][^"]*)" \/>/';
$result = preg_replace($regex, '<img src="http://' . get_option('domain') . '$1" />', $text);
这将修复图像src中的所有相对URL


为此使用正则表达式:

$text = '<img src="abc" /> asiodn <img src="dev" />'; //e.g.
$regex = '/<img src="([^https?:\/\/][^"]*)" \/>/';
$result = preg_replace($regex, '<img src="http://' . get_option('domain') . '$1" />', $text);
这将修复图像src中的所有相对URL


HMTL标记可能有用,但首先研究它:使用php。创建一个变量或常量,比如包含绝对路径的DOC_URL,然后在整个应用程序中使用它。创建一个包含绝对路径的变量或常量,如DOC_URL,然后在整个应用程序中使用它。这会在javascript有时间更改图像源之前对死链接执行一系列请求吗?@dhsto No如果您试图修复页面加载上的死链接,那么使用javascript执行此操作将不好。因为浏览器必须先解析页面,JavaScript才能编辑这些元素。然而,如果你试图通过JavaScript获取你正在加载的图像的完整URL,或者对每个图像加载都这样做,那么是的,我认为JavaScript是一个非常好的方法。我也这么认为。所以Javascript对于这个问题不是一个很好的解决方案,因为他/她正试图修复已经死亡的图像源。在这种情况下,只有当他们使用Javascript动态生成内容或从一开始就使用Javascript设置源代码时,Javascript才适合使用。。。否则,浏览器在每次页面加载时都会发出一堆死链接请求。在javascript有时间更改图像源之前,这会对死链接发出一堆请求吗?@dhsto No如果您试图修复页面加载时的死链接,使用javascript来做这件事是不好的。因为浏览器必须先解析页面,JavaScript才能编辑这些元素。然而,如果你试图通过JavaScript获取你正在加载的图像的完整URL,或者对每个图像加载都这样做,那么是的,我认为JavaScript是一个非常好的方法。我也这么认为。所以Javascript对于这个问题不是一个很好的解决方案,因为他/她正试图修复已经死亡的图像源。在这种情况下,只有当他们使用Javascript动态生成内容或从一开始就使用Javascript设置源代码时,Javascript才适合使用。。。否则,浏览器在每次加载页面时都会发出一堆死机请求,这与我发布的解决方案几乎相同。我认为,如果图像源不使用http://而使用https://该怎么办。有多种方法可以获得图像源,从而导致更改源,从而中断链接,而不是修复它们。也许更好的测试方法是字符串是否以/开头 张贴。我认为,如果图像源不使用http://而使用https://该怎么办。有多种方法可以获得图像源,从而导致更改源,从而中断链接,而不是修复它们。也许更好的测试方法是字符串是否以/开头。