코 낀거 같습니다. 채택완료

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

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

content는 

Copy
<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개

채택된 답변
+20 포인트

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 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];

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고