Проблемы с кавычками при написании кода JavaScript в PHP - PullRequest
0 голосов
/ 16 декабря 2011

Интересно, каков наилучший способ записи кода JavaScript в переменную PHP?

Иногда это может быть довольно длинный код JavaScript ... Есть ли способ без экранирования всех кавычек?

<?php
echo '
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">

a_div.innerHTML = '<iframe style="width:100%;height:300px;" id="iframe_upload" src="index.php">';

</script>'

?>

Ответы [ 3 ]

3 голосов
/ 16 декабря 2011

Использование heredoc . Например:

$var = EOF<<<
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
a_div.innerHTML = '<iframe style="width:100%;height:300px;" id="iframe_upload" src="index.php">';
</script>
EOF;

EOF может быть любой произвольной строкой, которую вы хотите, она просто должна идти сразу после разделителя <<< и совпадать с обеих сторон строки, которую вы хотите создать.

1 голос
/ 16 декабря 2011

Просто сделай:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">

a_div.innerHTML = '<iframe style="width:100%;height:300px;" id="iframe_upload" src="index.php">';

</script>

А если вам понадобится php, то где-нибудь:

a_div.innerHTML = '<iframe style="width:<?php echo $width; ?>;height:300px;" id="iframe_upload" src="index.php">';
1 голос
/ 16 декабря 2011

Ответ прост: не смешивайте код PHP и HTML / JavaScript, и, если вам нужно, завершите блок PHP с помощью ?> и откройте его снова с помощью <?php после блока HTML / JS.

Если вам это нужно внутри переменной, вы можете либо использовать буферизацию вывода, хотя это и немного грязно, либо использовать Heredoc / Nowdoc строки:

<?php
$foo = <<<FOOBAR
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
    a_div.innerHTML = '<iframe style="width:100%;height:300px;" id="iframe_upload" src="index.php">';
</script>

FOOBAR;
?>
...