2015-10-16 59 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的项目? –