2013-06-14 2 views
0

블로그 항목 끝에 유사한 항목에 대한 링크를 표시하고 싶습니다. 내 전략은 HTML이나 신체 요소에 클래스 속성과 주제 태그를 인용하는 것입니다 :PHP : HTML 요소에 특정 클래스가 있는지 확인하십시오.

<html class="bears honey alaska"> 

그리고 페이지 하단에 간단한 PHP 함수를 만들 : 클래스가있는 경우 " '곰', 곰 등이 있습니다. 여기에 PHP가. " elses없이.

누군가 코드를 도와 줄 수 있습니까?

HTML5의 데이터 속성이 더 적합 할 수 있지만 PHP가 데이터 속성을 처리 할 수 ​​있는지 여부는 알 수 없습니다.

감사합니다. 루나

당신은이 같은 정규 표현식으로 쉽게 할 수
+1

어떻게 HTML을 제공합니까? 정적으로? 그렇다면 PHP를 호출하고 데이터를 가져 오기 위해 jQuery ajax와 같은 것을 사용해야 할 것이다. PHP는 서버 측에서 출력되기 전에 처리되기 때문에 이미 DOM에 작성된 내용에 PHP가 반응 할 것으로 기대할 수 없습니다. –

+0

PHP 측에서이 작업을 수행하려고 할 때'class' 또는'data-'속성 사이에는 별다른 차이가 없으며 둘 다 똑같이 비효율적입니다. 그 OB를 읽고 DOM 파서/못생긴 regexes를 사용하여 필요합니다. 변수를 사용하는 것이 훨씬 낫습니다. 전역 배열은 쉽게 처리 할 수 ​​있습니다. –

+0

@KaiQing Ajax는 독립적이며 jQuery와는 아무런 관계가 없습니다 **. – Sebas

답변

0

: 말했다

$html_string = '<html class="bears honey alaska">'; 
$class = 'bears'; 
$has_bears = preg_match('/<html class="[^"]*'.$class.'[^"]*">/', $html_string); 
if ($has_bears) { 
    include('bears.php'); 
} 

, 나는 강하게 당신이 당신의 질문에 다른 의견을 읽을 것을 촉구한다. 당신이하고 싶은 것은 정말로 이상적인 솔루션처럼 들리지 않습니다.

1

당신은 PHP에 포함 할 클래스의 배열을 만들 수 있습니다, 페이지를 쓰기 전에 : 당신이 실제로 HTML 태그의 클래스를 인쇄 할 필요가되면

$classes = array('bears', 'honey', 'alaska'); 

, 당신은 같은 것을 할 수 있습니다 :

if (in_array("bears", $classes) 
{ 
    // your code here 
} 
:

그러면 나중에 코드에서 다음과 같은 일을 할 수

나중에 클래스를 쉽게 추가 할 수 있습니다. 배열에 다른 클래스를 추가하기 만하면됩니다. 대신 PHP의 클래스를 확인하는

4

, 나는 클래스를 정의하고 HTML

<?php 
$tags = array('bears', 'honey', 'alaska'); 
?> 
<html class="<?=implode(' ', $tags)?>"> 

로하고 결국 그것을 인쇄 PHP을 사용 할 수 있습니다

if(in_array('bears', $tags)) include("bears.php"); 

또는 경우 각 태그에 같은 이름의 파일을 포함 시키려면 다음을 입력하십시오.

foreach($tags as $tag) include($tag.".php"); 

당신이 각각을위한 파일을 가지고 있는지 확인하십시오. 또는 더 복잡한 솔루션 (예 : 클래스)이 장기적으로 더 유용 할 수 있습니다.

+0

여러분 모두에게 감사드립니다. 배열은 내 마음에 오지 않았다. 그것은 더 나은 방법이며 코드가 작동합니다. – Helen

0

PHP 만 사용하는 경우 코드가 모두 서버 측에서 실행됩니다 (이 경우 명확하게해야 함). 클래스를 추가 할 필요가 없으며 DOM이 아직 작성되지 않았기 때문에 클래스를 감지 할 수 없습니다. 변수에 주제를 저장하기 만하면됩니다 (예 :배열 : 페이지를 구축하기 위해 별도의 파일을 사용하는 경우

if(in_array("bears", $myTopics) { 
    doStuff(); 
} 

것은 당신이해야 할 수도 있습니다 : 주어진 값 주제의 배열에있는 경우

$myTopics = ["bears","honey","alaska"]; 

는 그런 다음 페이지에서 나중에 확인하실 수 있습니다 $ myTopics를 전역 변수로 선언하고 검색하여 나중에 사용합니다.

관련 문제