2013-04-30 7 views
0

기본적으로에서 콘텐츠를 가져 오려면 file_get_contents()을 사용하십시오.PHP를 사용하여 HTML 태그 내용 가져 오기

페이지 소스를받은 후, 나는

<div class="span2 box-product" data-store="kimstore" data-product-id="cpnYKmW6D5" data-product-title="Nokia-900-Lumia"> 
<a href="/Nokia-900-Lumia/p-cpnYKmW6D5" title="Nokia 900 Lumia Php 14,300"> 
    <img src="https://m-md.s3.amazonaws.com/storefront/kimstore/media/46/68/2d/99/68159647b67e5b1a2d124f9-120x90" width="120" height="90" title="Nokia 900 Lumia Php 14,300" alt="Nokia 900 Lumia Php 14,300" /> 
</a> 
<p class="title"> 
    <a href="/Nokia-900-Lumia/p-cpnYKmW6D5" title="Nokia 900 Lumia Php 14,300"> 
     Nokia 900 Lumia 
    </a> 
</p> 
<p class="price">Php 14,300</p> 
<p class="shop"> 
    <a href="/kimstore" title="kimstore">kimstore</a> 
</p> 
</div> 

그래서, 내가 <div class="span2 box-product"와 닫는 태그 사이에 데이터를 얻을 수있는 페이지 소스의이 부분에서 데이터를 얻을 수 있습니다.

하고 그 후, 나는이 3 개 데이터를 얻을 수 있습니다 1. 데이터를 저장 2. 데이터 제품 제목 3. 가격을

내가 regex를 사용하여 시도

하지만 운 방법 . 무엇을하라는 제안, 사용할 기술? 미리 감사드립니다.

+3

http://php.net/dom – DaveRandom

+0

당신이) 저작권 위반이있을 수 있습니다 일을하려고 무엇과 나) 잘못된 접근. IANAL. – PointedEars

+0

[HTML/XML을 구문 분석하고 처리하는 방법] 가능한 복제본 (http://stackoverflow.com/questions/3577641/how-to-parse-and-process-html-xml) – Quentin

답변

1

SimpleXML을 사용하면 속성 및 DOM을 PHP 객체로 액세스 할 수 있습니다. 과 같이, SimpleXML을에 file_get_contents에서 결과를 전달합니다

$str = file_get_contents($url); 
$xml = simplexml_load_string($string); 

http://in1.php.net/manual/en/class.simplexmlelement.php http://in1.php.net/manual/en/simplexml.examples-basic.php

+0

나는 이것을 시도 할 것이지만 xml url이 아닌 html을 얻고 있습니다. –

+0

HTML 스 니펫이 유효하면 작동 할 것입니다. – Adil

0

:

<?php 
$html = <<<HTML 
<div class="span2 box-product" data-store="kimstore" data-product-id="cpnYKmW6D5" data-product-title="Nokia-900-Lumia"> 
    <a href="/Nokia-900-Lumia/p-cpnYKmW6D5" title="Nokia 900 Lumia Php 14,300"> 
     <img src="https://m-md.s3.amazonaws.com/storefront/kimstore/media/46/68/2d/99/68159647b67e5b1a2d124f9-120x90" width="120" height="90" title="Nokia 900 Lumia Php 14,300" alt="Nokia 900 Lumia Php 14,300" /> 
    </a> 
    <p class="title"> 
     <a href="/Nokia-900-Lumia/p-cpnYKmW6D5" title="Nokia 900 Lumia Php 14,300"> 
      Nokia 900 Lumia 
     </a> 
    </p> 
    <p class="price">Php 14,300</p> 
    <p class="shop"> 
     <a href="/kimstore" title="kimstore">kimstore</a> 
    </p> 
</div> 
HTML; 

$sxe  = new SimpleXMLElement($html); 
$attributes = $sxe->attributes(); 
$data_store = trim((string) $attributes['data-store']); 
$title  = trim((string) $sxe->p[0]->a); 
$price  = trim((string) $sxe->p[1]); 

echo "{$data_store}\n{$title}\n{$price}\n"; 
+0

하지만 전체 HTML에서 데이터를 가져와야합니다. –

+0

이 코드 스 니펫은 SimpleXML 구문 분석의 작동 방식을 이해하는 데 충분해야합니다. 전체 HTML을로드하고 원하는 블록에 도달 할 때까지 객체로 이동하십시오. –

관련 문제