2012-11-19 22 views
6

संभव डुप्लिकेट:
How to parse and process HTML with PHP?पीएचपी पार्स HTML टैग

मैं बहुत पीएचपी के लिए नया हूँ। मेरे पास स्ट्रिंग वैरिएबल में कुछ पेज के बॉडी टैग का टेक्स्ट है। मैं जानना चाहता हूं कि इसमें कुछ टैग है ... जहां टैग नाम टैग 1 दिया गया है, और यदि ऐसा है, तो स्ट्रिंग से केवल वह टैग लें। मैं इसे PHP में कैसे कर सकता हूं?

धन्यवाद !!

+0

उस तक पहुंचने के कई तरीके हैं और वे सभी इस बात पर निर्भर करते हैं कि आप वास्तव में क्या करना चाहते हैं। क्या आपको * पार्स * एचटीएमएल की आवश्यकता है? एक HTML पार्सर का प्रयोग करें। क्या आप टैग को पट्टी करना चाहते हैं और सिंटैक्स कुछ सीमाओं के भीतर जाना जाता है? 'Strip_tags()' का प्रयोग करें। क्या आप कुछ टैग्स को मनमाने ढंग से HTML में ब्लैकलिस्ट करना चाहते हैं? शायद इसके बजाय * whitelisting * अनुमति टैग के बारे में बेहतर सोचते हैं? एचटीएमएल शोधक जैसी लाइब्रेरी का प्रयोग करें। – deceze

+0

@Troy अगर मेरे anwser कृपया इसे स्वीकार करने में मदद की तो दूसरों को इसे सीख सकते हैं। यदि नहीं, तो मैं आपकी मदद कैसे कर सकता हूं? – RTB

+0

धन्यवाद !! कृपया –

उत्तर

11

आप कुछ इस तरह पर विचार करना होगा:

<?php 
$content = ""; 
$doc = new DOMDocument(); 
$doc->load("example.html"); 
$items = $doc->getElementsByTagName('tag1'); 
if(count($items) > 0) //Only if tag1 items are found 
{ 
    foreach ($items as $tag1) 
    { 
     // Do something with $tag1->nodeValue and save your modifications 
     $content .= $tag1->nodeValue; 
    } 
} 
else 
{ 
    $content = $doc->saveHTML(); 
} 
echo $content; 
?> 

DomDocument एक संपूर्ण HTML या XML दस्तावेज़ का प्रतिनिधित्व करता है; दस्तावेज़ पेड़ की जड़ के रूप में कार्य करता है। तो आपके पास एक वैध मार्कअप होगा, और टैग नाम से तत्व ढूंढकर आपको टिप्पणियां नहीं मिलेंगी।

+0

यह वही है जो मैं ढूंढ रहा था। –

+0

धन्यवाद !! कृपया –

0

फास्ट तरीका: tag1 के सूचकांक स्थिति तो/tag1 के सूचकांक स्थिति देखने के लिए

देखो। फिर उन दो इंडेक्स के बीच स्ट्रिंग काट लें। Php.net पर स्ट्रॉप्स और सबस्ट्रेट को देखो, यदि आपकी स्ट्रिंग बहुत लंबी है तो यह काम नहीं कर सकता है।

$pos1 = strpos($bigString, '<tag1>'); 
$pos2 = strpos($bigString, '</tag1>'); 
$resultingString = substr($bigString, -$pos1, $pos2); 

आप $ pos1 और $ pos2 से जोड़ने के लिए और/या घटाना कुछ इकाइयों $ resultingString सही पाने के लिए हो सकता है। (आप tag1 के साथ टिप्पणी नहीं है, तो उनमें से अंदर विलाप)

सही तरीके: एचटीएमएल पारसर्स

को फिर से देखें

+0

से नीचे मेरी टिप्पणी देखें और आप टैग की स्थिति कैसे देखते हैं? ध्यान रखें कि यह वैध HTML है: '

+0

धन्यवाद से नीचे मेरी टिप्पणी देखें !! कृपया नीचे मेरी टिप्पणी देखें –

संबंधित मुद्दे