2015-10-16 34 views
2

我可以使用此代碼訪問遠程網站中的所有html代碼;有什麼辦法可以訪問所有標有循環類的div?

<?php 

$homepage = file_get_contents('http://www.example.com/'); 
echo $homepage; 

?> 

但我想只得到與photo_s類標記的div內容像下面的代碼;

<div class="photo_s"> 
    <a href=""> 
     <img title="" src="" alt="" /><br>Example Text <br>Example Text </a> 
</div> 

該頁面有100多個標籤爲photo_s class的項目。我想把它變成一個循環,所以我可以在我的數據庫中添加這些項目。我想學習簡單的方式來做到這一點

+1

隨着'jquery'或'php'? –

+0

用php sory標記錯誤。我已編輯它 –

+0

[您如何解析和處理PHP中的HTML/XML?]可能的重複(http://stackoverflow.com/questions/3577641/how-do-you-parse-and-process-html-xml -in-php) –

回答

0

更新:

for mult IPLE出現你可以試試這個:

在PHP:

<?php 
    $url = 'testing.php'; 
    $content = file_get_contents($url); 
    function getContents($str, $start, $end) { 
     $contents = array(); 
     $startDelimiterLength = strlen($start); 
     $endDelimiterLength = strlen($end); 
     $startFrom = $contentStart = $contentEnd = 0; 
     while (false !== ($contentStart = strpos($str, $start, $startFrom))) { 
     $contentStart += $startDelimiterLength; 
     $contentEnd = strpos($str, $end, $contentStart); 
     if (false === $contentEnd) { 
      break; 
     } 
     $contents[] = substr($str, $contentStart, $contentEnd - $contentStart); 
     $startFrom = $contentEnd + $endDelimiterLength; 
     } 

     return $contents; 
    } 

    $data = getContents($content, '<div class="photo_s">', '</div>'); 

    foreach($data as $value){ 
    echo $value; 
} 

輸出:
示例文本
示例文本
示例文本1
示例文本1

使用jQuery:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
    <div id="content"></div> 
    <script> 
    var href = 'testing.php'; 
     $.ajax({ 
      url:href, 
      type:'GET', 
      success: function(data){ 
       var str=""; 
       $(data).each(function(key,value){ 
        if(this.className == "photo_s"){ 
        str +=typeof value.innerHTML != 'undefined' ? value.innerHTML :""; 
        } 
       }); 
       $('#content').html(str); 
      } 
     }); 
    </script> 

輸出:
實施例文本
實施例文本
實施例文本1
實施例文本1

測試用例testing.php

<div class="photo_s"> 
    <a href=""> 
     <img title="" src="" alt="" /><br>Example Text <br>Example Text </a> 
</div> 

<div class="photo_s123"> 
    <a href=""> 
     <img title="" src="" alt="" /><br>Example Text123 <br>Example Text123 </a> 
</div> 
<div class="photo_s"> 
    <a href=""> 
     <img title="" src="" alt="" /><br>Example Text1 <br>Example Text1 </a> 
</div> 
+0

你的兩個代碼不能完整的工作。第一個代碼顯示整個頁面,第二個代碼不顯示任何東西.. –

+0

@EmreY嘗試更新的代碼與給定的測試頁,看到它應該工作正常。 –

2

您可以在做到這一點PHP像下面

$url = 'https://www.example.com/'; 
$content = file_get_contents($url); 
$first_step = explode('<div class="photo_s">' , $content); 
$second_step = explode("</div>" , $first_step[1]); 
echo $second_step[0]; 

jQuery的 ..嘗試這個

<div id="content"></div> 
<script> 
var href = "www.example.com"; 
    $.ajax({ 
     url:href, 
     type:'GET', 
     success: function(data){ 
      $('#content').html($(data).find('.photo_s').html()); 
     } 
    }); 
</script> 
+0

謝謝,但它會給我一個標籤爲photo_s的項目,我如何訪問所有標記爲photo_s的項目? –

相關問題