2015-09-09 10 views
0

у меня есть несколько ошибки в вызове файла PHP ошибкаПредупреждения Еореп(), FWRITE(), fclose()

Warning: fopen(beasweb/1qHdAfvx1GQPUzef4BGiEg$21J.in): failed to open stream: No such file or directory in C:\xampp\htdocs\beasweb\index.php on line 140 

Warning: fwrite() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\beasweb\index.php on line 142 

Warning: fclose() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\beasweb\index.php on line 143 

и линия 140, 142, 143

$fh = fopen($filename, 'a');        ///140 
$filestring=chr(239).chr(187).chr(191).$filestring; 
fwrite($fh, $filestring);         ///142 
fclose($fh);            ///143 

В чем проблема в моем коде? любой может решить мою проблему? thanks

+0

Первая ошибка связана с тем, что файл с таким именем не существует. Функция возвращает значение типа boolean, false, и оно сохраняется в переменной $ fh (дескриптор файла). Функции fwrite() и fclose() ожидают параметры типа ресурса, но не booleans, следовательно, вторую и третью ошибки. – Luke

ответ

1

Вы получаете ошибку, так как используете режим a, вы должны создать файл, если он не существует. или использовать режим a+, который создает в случае, если файл не существует.

поэтому используйте fopen($filename, 'a+');

a: Открыть только для записи; поместите указатель файла в конец файла. Если файл не существует, попытайтесь его создать. В этом режиме fseek() влияет только на позицию чтения, записи всегда добавляются.

Цитируя Руководство по PHP

a+ Открыть для чтения и записи; поместите указатель файла в конец файла. Если файл не существует, попытайтесь его создать. В этом режиме fseek() влияет только на позицию чтения, записи всегда добавляются.

1

Ваш код был ....

$fh = fopen($filename, 'a');        ///140 
$filestring=chr(239).chr(187).chr(191).$filestring; 
fwrite($fh, $filestring);         ///142 
fclose($fh);            ///143 

Мой код ....

$filename ="hello.xls"; 
$fh = fopen($filename, 'a'); 
$filestring=chr(239).chr(187).chr(191).$filename; 
fwrite($fh, $filestring); 
fclose($fh); 

при выполнении этого кода затем создать один файл Excel (Вы можете дать любой формат, как .txt, .php и т. д.) и те же тексты вставляются в файл как имя файла ....

+0

* Мета: * Я видел ваши недавние [редакционные предложения] (http://stackoverflow.com/users/3688102/codelove?tab=activity&sort=suggestions), и я должен сказать, что вы делаете много ненужных и неправильные изменения (просмотрите отклоненные изменения). В основном, пожалуйста, не используйте форматирование встроенного кода для не связанных с кодом материалов, таких как продукты, имена, технологии и т. Д. Для форматирования встроенных кодов для переменных полезно использовать это, но это не инструмент для общего внимания. Для этого нужны '*' и '**'. –

Смежные вопросы