Вы можете использовать буферизацию вывода для достижения чего-то похожего, хотя невозможно напрямую встраивать код PHP в JS.
Пример:
server.php
<?php
echo 'hello World';
?>
client.php - (расширение .php позволяет анализировать теги PHP, но на самом деле выводит JS)
<?php
header("Content-type: application/x-javascript"); // Or 'text/javascript'
ob_start();
include( 'server.php');
$i = ob_get_contents();
ob_end_clean();
?>
function foo() {
var i = '<?= json_encode( $i); ?>';
console.log( i );
}
Edit:
Если файл server.php вернет только простую строку, вы можете изменить свой код для client.php . Обратите внимание, как я сказал «возврат» вместо вывода - если ваш server.php выводит что-либо, оно будет отправлено в браузер как вывод (не то, что вы хотите). Кроме того, вы можете установить переменную в server.php , которая будет выводиться в client.php , или инкапсулировать ваш код в функцию:
server.php
<?php
function js_output()
{
return 'hello world';
}
?>
client.php
<?php
header("Content-type: application/x-javascript"); // Or 'text/javascript'
?>
function foo() {
var i = '<?php include( 'server.php'); echo addslashes( js_output()); ?>';
console.log( i );
}
Примечание. Вы также можете добавить вызов к html_entities
или htmlspecialchars
.