2014-07-04 2 views
2

PHP 단순 HTML 돔 파서를 사용해야하는 프로젝트로 작업 중이며 클래스를 기반으로 여러 요소에 사용자 정의 속성을 추가하는 방법이 필요합니다. 이름.PHP에서 사용자 정의 속성을 추가하는 방법 간단한 HTML DOM 파서

foreach 루프를 사용하여 요소를 반복 할 수 있으며 href와 같은 표준 특성을 쉽게 설정할 수 있지만 사용자 지정 특성을 추가하는 방법을 찾을 수 없습니다.

내가 추측 할 수있는 가장 가까운 같은 것입니다 :

foreach($html -> find(".myelems") as $element) { 
    $element->myattr="customvalue"; 
} 

하지만이 작동하지 않습니다.

비슷한 주제에 대해 다른 많은 질문을 보았지만 모두 html (domDocument 등)을 구문 분석하기위한 대체 방법을 사용하는 것이 좋습니다. 필자는 Simple HTML DOM Parser를 사용해야하므로이 옵션이 아닙니다.

답변

5

시도해 보셨습니까? 이 예를 시도해보십시오 (샘플 : 데이터 태그 추가).

include 'simple_html_dom.php'; 

$html_string = ' 
<style>.myelems{color:green}</style> 
<div> 
    <p class="myelems">text inside 1</p> 
    <p class="myelems">text inside 2</p> 
    <p class="myelems">text inside 3</p> 
    <p>simple text 1</p> 
    <p>simple text 2</p> 
</div> 
'; 

$html = str_get_html($html_string); 
foreach($html->find('div p[class="myelems"]') as $key => $p_tags) { 
    $p_tags->{'data-index'} = $key; 
} 

echo htmlentities($html); 

출력 :

<style>.myelems{color:green}</style> 
<div> 
    <p class="myelems" data-index="0">text inside 1</p> 
    <p class="myelems" data-index="1">text inside 2</p> 
    <p class="myelems" data-index="2">text inside 3</p> 
    <p>simple text 1</p> 
    <p>simple text 2</p> 
</div> 
관련 문제