Возвращает строку html со встроенным оператором php echo - PullRequest
1 голос
/ 29 июля 2010

Я пытаюсь вернуть строку html с некоторым php-кодом в html, и я испытываю некоторые трудности при этом.Пример ниже:

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>';

HTML до этого все прекрасно возвращается, но когда он достигает ">Delete</a>";}?> что-то падает и горит.HTML-код отображается в браузере следующим образом: Delete\n"; } ?> с открытым исходным кодом php.Я пытался читать другие посты и информацию о цитатах в заявлениях как таковых, и я старался изо всех сил, но безрезультатно.Любые идееры?Спасибо!

Ответы [ 3 ]

2 голосов
/ 29 июля 2010

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>';
}
1 голос
/ 29 июля 2010

Не возвращайте так в целях здравомыслия, вместо этого:

$myReturnStatement = htmlentities('whatever you wanted');
return $myReturnStatement;

На принимающей стороне вы удаляете косые черты и декодируете сущности обратно в законный код PHP. Кроме того, если я правильно понимаю мои кавычки, вы можете иметь двойные кавычки внутри одинарных кавычек без необходимости их вырезать. Это должно избавить вас от головной боли. Как только код декодируется в обычный код PHP, просто используйте eval () для оценки как PHP.

http://us2.php.net/manual/en/function.stripslashes.php
http://php.net/manual/en/function.htmlentities.php
http://www.php.net/manual/en/function.html-entity-decode.php
http://php.net/manual/en/function.eval.php

0 голосов
/ 29 июля 2010

Не возвращать PHP.Это не будет работать, и даже если это сработало, использование eval () и др. Считается вредным (и серьезной проблемой безопасности), за исключением очень специфических обстоятельств.*

...