2010-08-30 7 views
1

Я просто любопытно, почему это работает:PHP Tidy и закрывающие теги запроса

$config = array('wrap' => 0,'show-body-only' => TRUE,); 

$str = '<p>Hello World!'; 

$tidy = tidy_parse_string($str, $config); 
tidy_clean_repair($tidy); 
echo (htmlentities($tidy)); //outputs <p>Hello World!</p> 

в то время как это не делает:

$config = array('wrap' => 0,'show-body-only' => TRUE,); 

$str = 'Hello World!</p>'; 

$tidy = tidy_parse_string($str, $config); 
tidy_clean_repair($tidy); 
echo (htmlentities($tidy)); //outputs Hello World! 
+0

Я представляю его, потому что аккуратность завершает открытые теги сироты и удаляет теги закрытия сироты. Но почему это было закодировано так, я понятия не имею. Возможно, это из-за направления, когда его разбирали. он должен был вернуться, чтобы открыть те теги. – Iznogood

ответ

3

Я считаю, что если вы поставите <p>, что большинство программ принимают что как «до конца строки», но если вы поместите </p>, он не сможет соответствовать тому, с чего он начал, и игнорирует его.

(Но я не уверен на 100%)

1

функция tidy_clean_repair() пытается исправить код для вас. но, конечно, функция не идеальна и не могла точно догадаться, что вы хотели написать во втором примере. так что он, вероятно, просто разорвал его