코 낀거 같습니다.

코 낀거 같습니다.

QA

코 낀거 같습니다.

본문

이러다 코끼리 될거 같아요ㅡㅡ

 

정규식 관련인데요 preg_match_all 부분이 고장나서 안되는거 같은데요

 

content는 


<p> ~~ </p>
<p><a href=~~></a></p>
<p> ~~ </p>
<p> ~~ </p>
 
<table>
 <tbody>
 <tr>
  <td></td>
  <td>
    <table><tbody><tr><td></td></tr></tbody></table>
 </td>
 
이런 형식으로 <p>가 4개있고
아래 table tbody tr td 사이에 다시 table tbody tr td가 끼어 있는 형식입니다.
 
이쯤에서 

print_r($content); 해보면 데이터는 나타나구요.

 
preg_match_all("|<p>번호:([0-9]+) ([0-9-]{10}) .*<a href=[^>]+>(.*)</a>.*<table>.*(<table>.*</table>.*)</tr></tbody></table>|U", $content, $match);
이 preg_match_all 코드 중에 어느 부분이 잘못되었는지
 
Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) [3] => Array ( ) [4] => Array ( ) [5] => Array ( ) ) 이렇게 값이 아무것도 안나옵니다.

 

코좀 빼주세요 ㅜㅜ

이 질문에 댓글 쓰기 :

답변 1

해당 데이터가 지금 일부분내용만있는대 전체적인내용을 주세요.

감사합니다,
이렇게 되어 있습니다.
 $content = preg_replace($src, $targ,  $content);
//print_r($content); exit;
preg_match_all("|<p>번호:([0-9]+) ([0-9-]{10}) .*<a href=[^>]+>(.*)</a>.*<table>.*(<table>.*</table>.*)</tr></tbody></table>|U", $content, $match);

for($i=0; $i<count($match[1]); $i++){

if(!trim($match[1][$i]) || !trim($match[2][$i]) || !trim($match[3][$i]) ) continue;

  preg_match("@</table>(<p>.*</p>)?</td><td><p>([0-9\.,]+)</p>(<p>([0-9\.,]+)</p>)?(<p>합([0-9\.]+)</p>)?</td><td><p>([^<]+)</p>@U", $match[4][$i], $total);

    $tot[$i] = $total[2]; $sendcost[$i] = $total[6]; $status[$i] = $total[7];

답변을 작성하시기 전에 로그인 해주세요.
전체 80
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT