返回带有嵌入式php echo语句的html字符串
我试图返回一个html字符串,其中包含一些html中的php代码,但我在返回时遇到了一些困难。示例如下:返回带有嵌入式php echo语句的html字符串,php,html,return,quotes,echo,Php,Html,Return,Quotes,Echo,我试图返回一个html字符串,其中包含一些html中的php代码,但我在返回时遇到了一些困难。示例如下: return '//bunch of html here <div id="test"> <?php if (isset($_COOKIE[\"cannycookie\"])) { echo "<a class=\"reply\" href=\"#\" id=\"deletelink-'.$d['id'].'\">Delete<
return '//bunch of html here
<div id="test">
<?php
if (isset($_COOKIE[\"cannycookie\"]))
{
echo "<a class=\"reply\" href=\"#\" id=\"deletelink-'.$d['id'].'\">Delete</a>";
}
?>
</div>';
return'//这里有一堆html
';
在此之前的html都能完美返回,但当它到达“>Delete”;}>代码>某个东西崩溃并烧坏了。
html在浏览器中呈现为:Delete\n”;}?>
,整个php源代码都已公开。我曾尝试阅读其他帖子和语句中引用的信息,我已经尽了最大努力,但没有任何效果。有任何想法吗?谢谢!php内部的php很奇怪,请尝试以下方法:
if (isset($_COOKIE["cannycookie"]))
{
return '<div id="test">
<a class="reply" href="#" id="deletelink-'.$d['id'].'">Delete</a>
</div>';
}
else
{
return '<div id="test"></div>';
}
if(isset($\u COOKIE[“cannycookie”]))
{
返回'
';
}
其他的
{
返回“”;
}
出于理智的目的,不要像那样返回,而是:
$myReturnStatement = htmlentities('whatever you wanted');
return $myReturnStatement;
在接收端,您可以去掉斜杠并将实体解码回合法的PHP代码。此外,如果我正确理解了我的引号,您可以在单引号中包含双引号,而无需将其删除。这应该可以让您省去麻烦。一旦代码解码成普通的PHP代码,只需使用eval()作为PHP进行计算
不要返回PHP。它不会工作,即使它工作了,使用eval()等被认为是有害的(并且是一个严重的安全问题),除非在非常特殊的情况下
试试这个:
<?php
$retval = '<div id="test"> <!-- whatever you need here -->';
if (isset($_COOKIE["cannycookie"]))
{
$retval .= '<a class="reply" href="#" id="deletelink-'.$d['id'].'">Delete</a>';
}
return $retval;
?>
如relet所述,PHP代码是服务器端的,您不能以这样的字符串返回PHP代码,如果您回显返回值,您会期望它做任何事情。使用PHP构建PHP?好的,最有可能的错误是:$d['id']中有一个“?>”。问题是,我在返回此html代码的不同PHP文件中调用该函数(特别是用户注释)当正确的用户登录时,它会添加“删除”按钮。不确定该做什么。只是尝试了一下,它似乎只是在页面上显示所有html源代码。您必须解码实体,然后使用eval()。