2010-07-24 3 views
1

바꿀 테이블이있는 HTML 문서가 있지만 테이블의 내용이 무엇인지 알 수는 없습니다. 그래서 열기 태그와 닫기 태그를 검색하고 그 사이에 내용을 바꿔야합니다. 나는 정규 표현식을 사용하는 n00b 비트이기 때문에 이것을 수행하는 방법을 모색하는 데 어려움을 겪고 있습니다 ... 어떤 아이디어입니까?preg_replace를 사용하여 HTML 문서의 특정 콘텐츠 영역을 검색하고 바꿀 방법

업데이트 : 문제의 HTML을 문자열로 사용할 수 있으며 추가 데이터를 삽입하거나 어떤 식 으로든 HTML을 변경할 수 없습니다 ... 개폐를 검색 할 수 있어야합니다. 패턴을 HTML에서 표의 시작과 끝 부분에 놓은 다음 그 중간에있는 내용을 바꿉니다. :)

+0

검색 기능을 사용하는 것이 너무 게으른 경우 복제본을 찾기가 너무 게으 름이지만 확실합니다. http://stackoverflow.com/search?q=user%3A208809+replace+DOM – Gordon

+0

나는 검색 기능을 사용하기에는 게으르지 않다. 나는 이전에 묻지 않은 질문과 대답을 찾지 못했다. :) –

+0

링크 된 검색 결과에서 두 번째 링크와 Wrikken의 대답은 당신에게 필요한 모든 것을 제공해야합니다. – Gordon

답변

2

정규 표현식을 사용하지 마십시오. 파서를 살펴보십시오. 예를 들어 DOMDocument 인스턴스에 HTML을로드하고 DOMXPath 또는 getElementsByTagName으로 표를 검색하고 replaceNode 또는 다른 조작 기능을 사용합니다. regexes를 사용하면 대개 신뢰할 수 없습니다.

+0

불행히도이 서버 측을 수행해야하지만 제안에 감사드립니다. :) –

+1

구문 분석 XML 서버 측은 PHP의 XML 기능을위한 것입니다. – Kwebble

+0

와우, 알았어.이게 가능하다는 걸 깨닫지 못 했어. 미안, 너는 내 질문에 대해 오해했다고 생각 했어. PHP로 네이티브 DOM 조작에 대한 입문서를 찾아 볼 것입니다. 감사. :) –

0

HTML 문서를 직접 소유하고 있습니까? 아니면 file_get_contents()을 다른 사이트에서 가져 왔습니까? 첫 번째 경우에, 다만

<html> 
... 
<table> 
    <?php echo $tableString ?> 
</table> 
... 
</html> 

에 HTML을 변경하고 그것을 .php 또는 .inc 확장을 제공합니다. 그런 다음 주 파일에 다음과 같이 입력하십시오.

<?php 
    $tableString = calcTableContents(); 
    require('includedHTML.inc'); 
?> 

HTML을 구문 분석하지 않아도됩니다.

+0

그것은 흥미로운 해석의 질문입니다. – Gordon

+0

종종 질문의 묻는 사람이 원하는 것을 알고 있지만 잘못된 길을 따라 가서 얻습니다. – Eric

+0

불행히도 PHP에서 문자열로 사용하기 전에 HTML을 어떤 방식 으로든 적용 할 수 없습니다. 되돌아 보면, 이제 나는 원래의 질문에 맥락이 부족하다는 것을 깨닫는다. :) –

관련 문제