如何获取文本中的所有链接(URL)?

时间:2012-05-17 12:40:08

标签: php javascript ajax

这是我无法找到解决方案的情况。我用这个:

// creating ajax object
// ====================

function createRequestObject(){
try { return new XMLHttpRequest() }
catch(e)
{
try { return new ActiveXObject('Msxml2.XMLHTTP') }
catch(e)
{
try { return new ActiveXObject('Microsoft.XMLHTTP') }
catch(e) { return null; }
}
}
}

这是用于使用Ajax。所以我从Ajax(http.responseText)的PHP文件中获取了一个文本。现在我需要在文本中找到所有URL链接,并将另一个Ajax请求发送到另一个PHP文件,该文件使用cURL读取头检查链接的可用性。如果服务器响应为200,则返回HTML链接,如果其他服务器响应或错误,则返回简单文本链接。

有人可以帮忙解决这个问题吗?

我认为JavaScript可以像这样工作:

  1. var PHPreturn = http.responseText。
  2. 打开()循环以检查所有分配有退格的单词并检查链接的所有单词。如果URL正常表达链接套件,则将新的Ajax查询发送到另一个PHP文件以检查链接的新函数,如:
  3. //启用循环,将所有单词用退格键分隔

    for(...){
    

    //如果单词是http://

    的链接
    if(regular_express == http://){
    

    //用加载栏替换word [i],而ajax从PHP文件返回响应

    word[i].replace(word[i],'<span id="url_id"><img src="loading.gif"></span>');
    

    //发送Ajax查询并等待PHP文件返回

    // checkURL(“带有GET url变量的PHP文件”,“SPAN ID”);

    checkURL("http_response.php?url="+url,"span_id");
    
    
    function checkURL(url,place){
    var http = createRequestObject();
    if(http){
    http.open("GET", url);
    http.onreadystatechange = function (){
    if(http.readyState == 4){
    document.getElementById(place).innerHTML = http.responseText;
    }
    }
    http.send(null);
    } else {
    document.location = url;
    }
    }
    

    我不知道这些JavaScript应该是怎样的。将不胜感激任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

尝试使用responseXML;

xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("img");
for (i=0;i<x.length;i++)
{
  // your code here.
}