2016-07-13 12 views
-1

html 코드에서 정보를 추출하고 싶습니다. 여기의 일부는 다음과 같습니다HTML 코드에서 일부 정보 추출

<li class="letter">#</li> 
<li><a href="/fr/707/mot1/1.html" title="mot2">mot2</a><span>1234</span></li>  
<li><a href="/fr/1042/mot3/1.html" title="mot4">mot4</a><span>4567</span></li> 
<li><a href="/fr/5697/mot5/1.html" title="mot6">mot6</a><span>3254</span></li>etc... 

이 결과를 얻으려면 :

mot1,mot2 
mot3,mot4 
mot5,mot6 
etc... 

내가 strip_tags와 시도했지만이 나에게 도움까지 ...

감사를하지 않습니다.

+0

사용 HTML https://davidwalsh.name/php-notifications 당신은 [DOMDocument를] 사용할 수 있어야합니다 – developerCK

+0

(http://php.net/manual/en /class.domdocument.php)를 사용하여 HTML을 보지 않고도 더 자세하게 설명하기가 어렵습니다. –

+0

미안하지만,해야만했다. 저 노력 질문, 저 노력 대답 : http://pastie.org/10906079)) –

답변

0

희망을 얻으려면 preg_split, preg_match, array 및루프를 사용해보십시오. 이 경우; 당신은 너무 같은 array에 모든 경구 단어를을 묶을 수

<?php  
    $strMots = '<li class="letter">#</li> 
    <li><a href="/fr/707/mot/1.html" title="mot2">mot2</a><span>1234</span></li> 
    <li><a href="/fr/707/mot1/1.html" title="mot2">mot2</a><span>1234</span></li> 
    <li><a href="/fr/1042/mot3/1.html" title="mot4">mot4</a><span>4567</span></li> 
    <li><a href="/fr/5697/mot5/1.html" title="mot6">mot6</a><span>3254</span></li>'; 

    // SPLIT THE STRING $strMots AT THE BOUNDARY "</li>" 
    $arrSplits = preg_split("#<\/li>#", $strMots); 

    // CREATE AN ARRAY TO HOLD YOUR mot STRINGS 
    $arrMots = array(); 

    // USING FOREACH LOOP; ITERATE THROUGH ALL THE $arrSplits 
    // WHILE YOU ARE AT IT, JUST CHECK IF EACH RECORD IN THE LOOP MATCHES 
    // A PATTERN THAT HAS THE WORD mot IN IT AND IF IT DOES, 
    // PUSH IT TO AN ARRAY... 
    foreach($arrSplits as $split){ 
     if(preg_match_all("#mot[0-9]+#si", $split, $matches)){ 
      if(!empty($matches)){ 
       foreach($matches as $match){ 
        if(is_array($match)){ 
         foreach($match as $motVal){ 
          if(!in_array($motVal, $arrMots)){ 
           $arrMots[] = $motVal; 
          } 
         } 
        } 
       } 
      } 
     } 
    } 
    var_dump($arrMots); 

    // DISPLAYS: 
    array (size=4) 
     0 => string 'mot2' (length=4) 
     1 => string 'mot1' (length=4) 
     2 => string 'mot3' (length=4) 
     3 => string 'mot4' (length=4) 
     4 => string 'mot5' (length=4) 
     5 => string 'mot6' (length=4) 

참고 : (위의 var_dump()에서위한 확으로, 여기에 사용되는 Regular Expression 그냥 경구과 일치하지 않을 것이라고 통보하십시오 . 혼자는 다음과 같습니다mot9 같은 숫자 접미사없이

테스트 그것을 밖으로. HERE.

희망 사항을 통해 자신이 즉흥적으로하는 방법에 대한 아이디어를 얻을 수 있기를 바랍니다. 구문 분석

행운 & 건배 ;-)