В чем разница между клиентским и серверным программированием?
У меня есть такой код:
<script type="text/javascript">
var foo = 'bar';
<?php
file_put_contents('foo.txt', ' + foo + ');
?>
var baz = <?php echo 42; ?>;
alert(baz);
</script>
Почему этот код не записывает "bar" в мой текстовый файл, но выводит "42" в алерте?
Примечание: Ранее в вопросе говорилось о PHP на стороне сервера и JavaScript на стороне клиента. Сущность проблемы и решения такие же для любой пары языков, когда один работает на клиенте, а другой на сервере (даже если это один и тот же язык). Пожалуйста, учитывайте это, когда будете видеть ответы, касающиеся конкретных языков.
1 ответ(ов)
Ваш JavaScript выполняется на клиентской стороне, а не на сервере. Это означает, что переменная foo
не вычисляется на стороне сервера, и, следовательно, её значение не может быть записано в файл на сервере.
Лучше всего представлять этот процесс как динамическое создание текстового файла. Сгенерированный текст становится исполняемым кодом только тогда, когда браузер его интерпретирует. Всё, что вы помещаете между тегами <?php
, выполняется на сервере.
Кстати, приучение вставлять случайные фрагменты логики PHP в HTML или JavaScript может привести к сильно запутанному коду. Я говорю это из болезненного опыта.
Как создать файл в памяти для скачивания пользователем без использования сервера?
Как экспортировать информацию из массива JavaScript в CSV (на стороне клиента)?
Как передать переменные и данные из PHP в JavaScript?
Как сопоставить любой символ на нескольких строках в регулярном выражении?
Где найти документацию по форматированию даты в JavaScript?