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


How to get all links (URL) in text?

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

// 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的PHP文件中得到一个文本(http.responseText(。现在我需要在文本中找到所有 URL 链接,并将另一个 Ajax 请求发送到另一个 PHP 文件,该文件使用 cURL 读取标头检查链接的可用性。如果服务器响应为 200,则返回 HTML 链接,如果其他服务器响应或错误,则返回简单文本链接。

任何人都可以帮助如何解决这个问题?

我想一个JavaScript可以像这样工作:

  1. var PHPreturn = http.responseText.
  2. 打开 for(( 循环以检查所有用退格键划分的单词,并检查所有单词的链接。 如果 URL 正则表达式的链接套件,请放置一个新函数,该函数会将新的 Ajax 查询发送到另一个 PHP 文件以检查链接,例如:

打开循环,将所有单词与退格符分隔开

for(...){

如果一个词是与 http://的链接

if(regular_express == http://){

将单词 [i] 替换为加载栏,而 ajax 返回来自 PHP 文件的响应

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

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

checkURL("PHP file with get url variable","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应该如何。将不胜感激任何帮助。提前谢谢你。

尝试使用 responseXML;

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