tags:

views:

18

answers:

2

I'm just curious as to why this works:

$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> 

while this doesn't:

$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! 
+2  A: 

I believe if you put <p> that most programs accept that as "until the end of the line" but if you put a </p> it is not able to match where it started and disregards it.

(But I am not 100% sure)

webdestroya
+1  A: 

the tidy_clean_repair() function tries to fix the code for you. but of course the function is not perfect and could not guess precisely what you wanted to write in the second example. so it probably just ripped it off

hugo_leonardo