2017-10-10 86 views
0

我想從網址(網址:http://localhost/test.php)獲取包含文件的所有href鏈接,也是因爲我包含了一個php文件(menulink.php) 我的腳本僅適用於在href之外,並且條件只檢查href。如何從網址獲取所有href鏈接

<a href="test.html" title="test"></a> 
<a href="test1.html" title="test1"></a> 
<a href="menulink1.html" title="menulink1"></a> 
<a href="menulink2.html" title="menulink2"></a> 

如果條件真:

<a href="test4.html" title="test4"></a> 
<a href="menulink3.html" title="menulink3"></a> 

,但我想別的條件還都時間(我需要所有的href鏈接不會考慮,如果其他條件或者其他條件)

缺少的href鏈接:

<a href="http://www.google.com" title="test6"></a> 
<a href="menulink5.html" title="menulink5"></a> 
<a href="menulink6.html" title="menulink6"></a> 

我該怎麼辦?你能解決我的代碼問題嗎? 這是我的代碼:

的index.html

  $(document).ready(function(){ 

     var url = "http://localhost/links/test.php"; 
     var arr= null; 
     $.post('load.php', { url: url,async: false}, 
      function(html) { 
       $('#page').html(html); 
       var links = $('a'); 
       var title = $('a').attr('title'); 

       var arr=[]; 
       for(var i=0; i < links.length; i++) 
       { 
        arr.push(links[i]); 
       } 
       console.log(arr); //all href links// 
     } ); 

    }); 

test.php的

<html> 
    <head> 
    <title>Test</title> 
    </head> 
    <body> 
    <div> 
    <?php include("menulink.php"); ?> 

    <a href="test.html" title="test"></a> 
    <a href="test1.html" title="test1"></a> 
    <?php 
    $result_array="123"; 
    if ($result_array=="123") 
    { 
    ?> 
    <a href="test4.html" title="test4"></a> 
    <?php 
    } 
    else{ 
    ?> 
    <a href="http://www.google.com" title="test6"></a> 
    <?php 
    } 
    ?> 
    </div> 
    </body> 
    </html> 

load.php

<?php 
$url = $_POST['url']; 
$html = file_get_contents($url); 
echo $html; 
?> 

menulink.php

<html> 
    <head> 
    <title>Test</title> 
    </head> 
    <body> 
    <div> 
    <a href="menulink1.html" title="menulink1"></a> 
    <a href="menulink2.html" title="menulink2"></a> 
    <?php 
    $result_array="123"; 
    if ($result_array=="123") 
    { 
    ?> 
    <a href="menulink3.html" title="menulink3"></a> 

    <?php 
    } 
    else{ 
    ?> 
    <a href="menulink5.html" title="menulink5"></a> 
    <a href="menulink6.html" title="menulink6"></a> 
    <?php 
    } 
    ?> 

</div> 
</body> 
</html> 

我想獲得所有的href鏈接。不要考慮是否有條件或來自url文檔的任何條件。請從我的代碼中解析。

回答

0

試試這個:

 $dom = new DOMDocument; 
    $dom->validateOnParse = true; 
    $dom->loadHTML($html); 
    $links = array(); 
    foreach($dom->getElementsByTagName('a'); as $link) { 
     $links[] = $link->getAttribute('href'); 
    } 
+0

,我想添加此代碼?請編輯我的代碼 –

+0

在你的load.php 對不起,我忘了補充一下 –

+0

無法正常工作。你可以編輯我的load.php文件 –

0
// Create DOM from URL or file //you have to include simple_html_dom.php form above link 

$html = file_get_html('http://www.google.com/'); 



// Find all links 

你要做這load.php文件

  include("simple_html_dom.php"); // please make sure right location of file 
$url = $_POST['url']; 
$html = file_get_html($url); 
header('Content-Type: application/json'); 
$links = array(); 
foreach($html->find('a') as $element) { 
    $links[] = $element->href; 
    } echo json_encode($links); 

和jQuery中獲得這些鏈接

$(document).ready(function(){ 

     var url = "http://localhost/links/test.php"; 
     //var arr= null; 
     $.post('load.php', { url: url,async: false}, 
      function(html) { 
       $('#page').html(html); 
       console.log(html); 
     } ); 

    }); 

HTML 

     <html> 
     <head> 
     <title>Test</title> 
     </head> 
     <body> 
     <div> 


     <?php include("menulink.php"); ?> 

     <a href="test.html" title="test"></a> 
     <a href="test1.html" title="test1"></a> 
     <?php 
     get_links("123"); 
     get_links("321"); 
     function get_links($a){ 
      ?> 
      <?php 
     $result_array=$a; 
     if ($result_array=="123") 
     { 
     ?> 
     <a href="test4.html" title="test4"></a> 
     <?php 
     } 
     else{ 
     ?> 
     <a href="http://www.google.com" title="test6"></a> 
     <?php 
     } 
     ?> 
      <?php 
     } 
} 
     ?> 
     </div> 
     </body> 
     </html> 
+0

請閱讀我的問題。您的腳本不能正常工作..getting錯誤:致命錯誤:未捕獲錯誤:調用未定義的函數file_get_html() –

+0

您必須下載它 –

+0

https://sourceforge.net/projects/simplehtmldom/ –