Поскольку этот аспект не был рассмотрен в предыдущих ответах, я добавлю его сюда:
chmod()
будет принимать только строку пути в качестве 1-го аргумента. Поэтому вы не можете попытаться перейти к ресурсу, который был открыт с помощью fopen()
, в данном случае $fh
.
Необходимо fclose()
ресурс, а затем запустить chmod()
с путем к файлу. Поэтому правильной практикой будет сохранение filePath в переменной и использование этой переменной при вызове fopen()
, а не передача ей прямой строки в первом аргументе.
В случае примера кода в ответе это будет просто означать выполнение chmod($myfile, 0755)
(код разрешения - только пример и, конечно, будет другим).
полный код после исправлений:
<?php
$var = '<?php $mycontent = new Content(); echo $mycontent->block($p_name);?>';
$myFile = "testFile.php";
$fh = fopen($myFile, 'w+') or die("can't open file");
$stringData = $var;
fwrite($fh, $stringData);
fclose($fh);
// Here comes the added chmod:
chmod($myFile, 0755);
?>