Не создается php файл

Как в php создать файл?

Чаще всего в php работа ведется с базами данных, и это правильно, они быстрее и удобнее. Однако, иногда возникают ситуации, когда необходимо отдать пользователю данные в виде файла. В php файл можно создать 2 способами.

Первый способ создать файл

Самый быстрый способ — это использовать специальную функцию fopen( имя_файла, режим ). Функция может работать в нескольких режимах. Например, открыть файл так, что-бы можно было только записывать данные, но нельзя было читать. Вот список всех режимов.

  • ‘r’ — Открыть файл для чтения, и установить курсор в начало файла.
  • ‘r+’ — Открыть файл для чтения и записи. Курсор, так-же в начале.
  • ‘w’ — Открывает файл для записи, если его нет или создает новый, очищает данные.
  • ‘w+’ — Открывает файл для записи и чтения, если его нет или создает новый, очищает данные.
  • ‘a’ — Открывает для записи в конец файла, если его нет, то создает новый.
  • ‘a+’ — Открывает для записи в конец файла и чтения, если его нет, то создает новый.

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

Второй способ создания файла

Данный метод проще в использовании, но работает медленнее в некоторых ситуациях. Мы можем использовать удобную функцию file_put_contents(). Данная функция делает все то же самое, что мы делали в первом способе, но скрыто от нас. Поэтому, если нужно записать одну строчку в файл, то данная функция подойдет. Но, если вы будете писать в один файл много разных строчек за одно выполнение скрипта, функция может замедлить скорость работы, так как открывает и закрывает файл каждый раз.

Если же, у вас есть необходимость дописать данные в конец файла, то нужно указать третий параметр FILE_APPEND.

Примечание. Если у вас не создается файл, убедитесь, что у папки, где вы пытаетесь создать файл, выставлены права доступа для этого.

Читайте также:  Javascript foreach array string

Источник

PHP не может создать файл и записать данные

Здравствуйте. У меня проблема следующего характера: я пытаюсь создать текстовый файл и записать в него кое-какие данные из формы, но файл даже не создаётся. Что же это может быть? Пробовал даже на простейших примерах из сети создавать файл, ничего не происходит.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
html> HEAD> TITLE>ФАКУЛЬТЕТ2TITLE> style type="text/css"> #block1 width: 300px; height: 500px; background: yellow; position: absolute; } #block3 left: 800px; width: 300px; height: 500px; background: yellow; position: absolute; } .ob {background:blue} STYLE> script type="text/javascript">  function validate_form ( ) { valid = true; if ( document.contact_form.contact_name.value == "" ) { alert ( "Пожалуйста заполните поле 'Ваше имя'." ); valid = false; } return valid; } //--> script> HEAD> div id="block1"> form action=hello.php name="contact_form" method="post" onsubmit="return validate_form ( );"> p>Ваше имя: input type="text" name="contact_name">p> p>b>Название факультетаb>p> p>input name=Nazv[] type=radio value=math checked autofocus>Математическийp> p>input name=Nazv[] type=radio value=fiz>Физическийp> p>input name=Nazv[] type=radio value=mathfiz>Физико-математическийp> Специальности p>input type="checkbox" name=a[] value="prog">Программистp> p>input type="checkbox" name=a[] value="test">Тестировщикp> p>input type="checkbox" name=a[] value="sisadmin">Системный администраторp> button type="submit">img src="image2.jpg" width=70 height=30>button>  $j = '1234567'; $fp = fopen("myfile1.txt", "wt"); fwrite($fp, $j); fclose($fp); ?> form> div> html>

Источник

Не создается файл на сервере

Не создается файл на сервере в сети.
И файл создается на Openserver (локальный сервер).
Код практически одинаковый.

$sitedir=''; $dump_random_file=fopen($_SERVER['DOCUMENT_ROOT'].'/'.$sitedir."/handbook_files/random_string_file111.txt", 'w'); //Создаем новый файл. Старый уничтожаем fwrite($dump_random_file,'1111'); fclose($dump_random_file); $temp=$_SERVER['DOCUMENT_ROOT'].'/'.$sitedir."/handbook_files/random_string_file.txt"; echo"$temp
"
;

Переменная temp (на сервере) выводит значение /var/www/1/handbook_files/random_string_file.txt
Этот путь существует. Файловый менеджер — /var/www/1/handbook_files
На папку handbook_files ставил права 755 и 777

Не создается текстовый файл на сервере.
Не могу понять почему следующий код работает на локальной машине а на хостинге нет. $text =.

При нажатии на кнопку файл не создается на диске, а он создается только после сворачивания или закрытия окна.
Знакомлюсь с графическим интерфейсом Java Swing. Появилась такая проблема: при нажатии на кнопку.

Не создается таблица в БД на сервере MS SQL
Не могу понять почему не создается таблица на сервере. using System; using.

Gb записи в типизированный файл создается файл огромного размера больше 2Гб что делать?
Доброе утро, в программе создаю файл с данными о студентах(лабараторная работа) он созается но.

ЦитатаСообщение от Hikari Посмотреть сообщение

Уже исправил. Увидели только одну строку моего текста? Что то «нажалось». Бывает.

PS
Сервер подымал сам. Стандартно — debian php mysql. Все прекрасно работает. Все загружается по фтп, http и т.д.

Добавлено через 14 минут
Ещё уточню.
На сервере есть скрипт закачивающий файлы в директории. Все работает. Т.е. у системы достаточно прав на «закачку».
Наверно достаточно и на создание файла.
Файла random_string_file.txt нет на сервере. Но код

fopen($_SERVER['DOCUMENT_ROOT'].'/'.$sitedir."/handbook_files/random_string_file.txt", 'w');

Добавлено через 48 минут
Добавил вывод ошибок
Результат
Warning: fopen(/var/www/1/handbook_files/random_string_file.txt): failed to open stream: Permission denied in /var/www/1/test.php on line 5

На папку handbook_files установлены разрешения 755. Установил 777 заработало — все пишется.
Но мне нужно 755. С 777 кто угодно запишет что угодно.
Почему не пишет с 755?

Источник

Не создается php файл

К ошибке при создании файла с помощью PHP-скрипта могут приводить следующие причины:
— на сервере недостаточно свободного дискового пространства;
— указана несуществующая директория (папка/каталог/путь), для сохранения файла;
— недостаточно прав для сохранения файла в указанной директории.

Более подробно о каждом из указанных вариантов.

1. На сервере недостаточно свободного дискового пространства.

Получить информацию о доступном дисковом пространстве на сервере вы можете с помощью команды:
df -h

Результат выполнения команды представлен на следующем скриншоте.

На скриншоте выделены дисковое устройство и столбец Avail — доступно 25GB.
Дисковое устройство в зависимости от услуги и метода распределения пространства может быть указано в выводе команды как: /dev/vd[a-z]*, /dev/sd[a-z]* или /dev/mapper/*
В случае, если в столбце Avail (доступно) для дискового устройства будет указано 0 — значит на дисковом устройстве отсутствует свободное пространство.
В этом случае необходимо очистить диск, удалив лишние файлы, а в случае отсутствия таковых — необходимо его расширение.

2. Указана несуществующая директория (папка/каталог/путь), для сохранения файла.

Проверить, существует ли указанная директория вы можете с помощью команды:
ls -l [директория]

* [директория] — укажите полный путь к вашей директории, в которой должен быть создан файл.
В данном примере используется директория /home/oleg/www/data/needed

Если директория не существует — будет выведена соответствующая информация.
Если директория существует — будет выведено ее содержимое.

В случае, если директория не существует, ее необходимо создать, либо изменить путь к файлу в PHP-скрипте.
Создать директорию вы можете командой:
mkdir -p [директория]

После чего проверить директорию вы можете указанной ранее командой:
ls -l [директория]

Пример указанных операций продемонстрирован на следующем скриншоте.

Так как директория в примере отсутствовала, после создания она пуста, о чем и свидетельствует вывод:
total 0

3. Недостаточно прав для сохранения файла в указанной директории.

Для выполнения операций с файлами пользователь, от имени которого запускается PHP-скрипт должен иметь необходимые права на директорию и/или изменяемый файл.
Соответственно данному пользователю должны быть предоставлены корректные права.
Узнать, от имени какого пользователя работает веб-сервер Apache (httpd) вы можете используя команду:
ps aufx

Часть вывода команды с интересующими нас процессами представлена на следующем скриншоте.

Имя пользователя указано в первом столбце, в данном случае — Apache
Изменяем владельца (пользователя и группу) для используемой нами директории на Apache командой:
chown apache:apache [директория]

, и проверяем изменение владельца на директорию командой:
ls -l [директория-1]

* в данном примере [директория] — /home/oleg/www/data/needed , а [директория-1] — /home/oleg/www/data
Пример указанных операций продемонстрирован на следующем скриншоте.

Источник

Оцените статью