Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
返回带有嵌入式php echo语句的html字符串_Php_Html_Return_Quotes_Echo - Fatal编程技术网

返回带有嵌入式php echo语句的html字符串

返回带有嵌入式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<

我试图返回一个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</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()。