|
|
|
@ -4,14 +4,16 @@ xslt_set_opt function and public entities |
|
|
|
<?php |
|
|
|
include("skipif.inc"); |
|
|
|
if(!function_exists('xslt_setopt')) { |
|
|
|
die("skip\n"); |
|
|
|
die("skip function xslt_setopt() is not available\n"); |
|
|
|
} |
|
|
|
?> |
|
|
|
--INI-- |
|
|
|
magic_quotes_runtime=0 |
|
|
|
--FILE-- |
|
|
|
<?php |
|
|
|
error_reporting(E_ALL); |
|
|
|
$xmlfile = 'ext/xslt/tests/public.xml'; |
|
|
|
$xslfile = 'ext/xslt/tests/args.xsl'; |
|
|
|
$xmlfile = dirname(__FILE__).'/public.xml'; |
|
|
|
$xslfile = dirname(__FILE__).'/args.xsl'; |
|
|
|
|
|
|
|
$xh = xslt_create(); |
|
|
|
// Tell Sablotron to process public entities |
|
|
|
@ -26,22 +28,33 @@ $xslstring = str_replace('<xsl:value-of select="." />', '<html><head><title>foo< |
|
|
|
// DEBUG: print $xslstring; |
|
|
|
|
|
|
|
xslt_setopt($xh, XSLT_SABOPT_PARSE_PUBLIC_ENTITIES | XSLT_SABOPT_DISABLE_ADDING_META); |
|
|
|
$result_nometa = xslt_process($xh, $xmlfile, 'arg:/_xsl', NULL, array('/_xsl' => $xslstring)); |
|
|
|
// DEBUG: print "$result_nometa\n"; |
|
|
|
var_dump(xslt_process($xh, $xmlfile, 'arg:/_xsl', NULL, array('/_xsl' => $xslstring))); |
|
|
|
|
|
|
|
|
|
|
|
xslt_setopt($xh, XSLT_SABOPT_PARSE_PUBLIC_ENTITIES); |
|
|
|
$result_meta = xslt_process($xh, $xmlfile, 'arg:/_xsl', NULL, array('/_xsl' => $xslstring)); |
|
|
|
var_dump(xslt_process($xh, $xmlfile, 'arg:/_xsl', NULL, array('/_xsl' => $xslstring))); |
|
|
|
// DEBUG: print "$result_meta\n"; |
|
|
|
|
|
|
|
/* Also test if they're equal. That would mean, that disable-adding-meta is set to off |
|
|
|
at compile time and our call to xslt_setopt failed to reset that */ |
|
|
|
if($result_meta != $result_nometa && FALSE === stristr($result_nometa, '<meta http-equiv="Content-Type"')) |
|
|
|
{ |
|
|
|
print "OK\n"; |
|
|
|
} |
|
|
|
|
|
|
|
xslt_free($xh); |
|
|
|
?> |
|
|
|
--EXPECT-- |
|
|
|
PHP QA® |
|
|
|
OK |
|
|
|
string(95) "<html> |
|
|
|
<head> |
|
|
|
<title>foo</title> |
|
|
|
</head> |
|
|
|
<body> |
|
|
|
<p>PHP QA®</p> |
|
|
|
</body> |
|
|
|
</html> |
|
|
|
" |
|
|
|
string(172) "<html> |
|
|
|
<head> |
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
|
|
|
<title>foo</title> |
|
|
|
</head> |
|
|
|
<body> |
|
|
|
<p>PHP QA®</p> |
|
|
|
</body> |
|
|
|
</html> |
|
|
|
" |