使用PHP,我正在尝试创建一个函数,它将用打开和关闭的PHP标记替换特定的打开和关闭HTML注释。 发生的事情是当我将注释的HTML作为主题字符串输入时,它被嵌入到HTML文档中,而不是被PHP标记替换。但是,当我输入除HTML评论之外的其他内容时,它很好 - 正如您所期望的那样。 var_dump()分别为$ foo和$ bar返回字符串(32)“”和NULL。 例如,下面的函数旨在替换:
<!--CODE echo"hello world"; CODE--!>
使用:
<?php echo"hello world"; ?>
代码:
<?php
function code($subject){
$php=array("<?php","?>"); //the replace string array
$html=array("<!--CODE","CODE--!>"); //the search string array
$subject=str_replace($html,$php,$subject); //search the subject and replace strings
}
if(isset($_POST['submit'])){
$foo=$_POST['foo'];
$bar=code($foo);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
var_dump($foo);
var_dump($bar);
?>
<form method="post" action="">
<input type="text" name="foo" />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
有什么想法吗?非常感谢您的意见。
答案 0 :(得分:0)
我希望这是你想要完成的事情。
<?php
function code($subject) {
$php = array("<?php", "?>"); //the replace string array
$html = array("<!--CODE", "CODE-->"); //the search string array
return str_replace($html, $php, $subject); //search the subject and replace strings
}
if(isset($_POST['foo'])) {
$foo = $_POST['foo'];
$bar = code($foo);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
if (isset($foo)) {
echo 'foo = ';
var_dump($foo);
}
if (isset($bar)) {
echo 'bar = ';
var_dump($bar);
}
?>
<form method="post" action="">
<input type="text" name="foo" />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
我使用HTML标准评论结束标记编辑了$html
数组中的评论结束标记,并编辑了code()
函数的第三行。现在,这些值未分配回$subject
,但已退回(return str_replace($html, $php, $subject)
)。