24.05.2024
10:18
24.05.2024 10:18:39
https://metanit.com/php/tutorial/5.1.php - Чтение и запись файлов php
https://metanit.com/php/tutorial/5.2.php - Управление файлами и каталогами php
открыть файл
$file = fopen($_SERVER["DOCUMENT_ROOT"] . "/liclist.txt", "a+"); |
Список возможных режимов для fopen
mode | Описание |
---|
'r' | Открывает файл только для чтения; помещает указатель в начало файла. |
'r+' | Открывает файл для чтения и записи; помещает указатель в начало файла. |
'w' | Открывает файл только для записи; в противном случае ведёт себя так же, как и 'w+'. |
'w+' | Открывает файл для чтения и записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует - пытается его создать. |
'a' | Открывает файл только для записи; помещает указатель в конец файла. Если файл не существует - пытается его создать. В данном режиме функция fseek() не применима, записи всегда добавляются в конец. |
'a+' | Открывает файл для чтения и записи; помещает указатель в конец файла. Если файл не существует - пытается его создать. В данном режиме функция fseek() влияет только на позицию чтения, записи всегда добавляются в конец. |
'x' | Создаёт и открывает только для записи; помещает указатель в начало файла. Если файл уже существует, вызов fopen() закончится неудачей, вернёт false и выдаст ошибку уровня E_WARNING. Если файл не существует, попытается его создать. Это эквивалентно указанию флагов O_EXCL|O_CREAT для внутреннего системного вызова open(2). |
'x+' | Создаёт и открывает для чтения и записи; в остальном имеет то же поведение, что и'x'. |
'c' | Открывает файл только для записи. Если файл не существует, то он создаётся. Если же файл существует, то он не обрезается (в отличие от 'w'), и вызов к этой функции не вызывает ошибку (также как и в случае с 'x'). Указатель на файл будет установлен на начало файла. Это может быть полезно при желании заблокировать файл (смотрите flock()) перед изменением, так как использование 'w' может обрезать файл ещё до того как была получена блокировка (если вы желаете обрезать файл, можно использовать функцию ftruncate() после запроса на блокировку). |
'c+' | Открывает файл для чтения и записи; в остальном имеет то же поведение, что и 'c'. |
'e' | Установить флаг close-on-exec (закрыть при запуске) на открытый файловый дескриптор. Доступно только в PHP скомпилированном на системах поддерживающих POSIX.1-2008. |
записываем в файл
$file = fopen($_SERVER["DOCUMENT_ROOT"] . "/liclist.txt", "a+");
fputs($file, $str1 . "\r\n");
fputs($file, $str2 . "\r\n");
fputs($file, $str3 . "\r\n");
fclose($file);
|
читаем файл
if($file = fopen("form.php", 'r')){
while(!feof($file)){
$str = htmlentities(fgets($file));
echo $str;
}
} |
читаем директорию
$dir = $_SERVER["DOCUMENT_ROOT"] . "/upload/learning/html/";
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if ($file == '.' || $file == '..') {
continue;
}
$file1 = $dir.$file;
if (is_file($file1)) {
//читаем файл
}
}
}
|
if (is_dir($p = $_SERVER["DOCUMENT_ROOT"]."/local/modules/".$this->MODULE_ID."/admin")){
if ($dir = opendir($p)){
while (false !== $item = readdir($dir)){
if ($item == ".." || $item == "." || $item == "menu.php")
continue;
file_put_contents($file = $_SERVER['DOCUMENT_ROOT'].'/bitrix/admin/'.$this->MODULE_ID.'_'.$item,
'<'.'? require($_SERVER["DOCUMENT_ROOT"]."/local/modules/'.$this->MODULE_ID.'/admin/'.$item.'");?'.'>');
}
closedir($dir);
}
} |
чтение файлов в js
php
<input type="file" id="fileTires" accept="text"><br>
<button id="importStart">прочитать</button>
<div id="result"></div>
|
js
$('#importStart').on('click',function(){
if (window.FileReader && window.Blob) {
// All the File APIs are supported.
var files = document.getElementById('fileTires').files;
if(files.length != 0){
var file = files[0];
if(file.name.slice(-4)=='.csv'){ //проверка по типу
var reader = new FileReader();
reader.onload = function(event) {
var contents = event.target.result;
var lines = contents.split("\n");
for (var i = 2; i<lines.length; i++) { //читаем со 2й строки
//что-то делаем с lines[i]
}
}
reader.onerror = function(event) {
$('#result').html("Файл не может быть прочитан! код " + event.target.error.code);
};
reader.readAsText(file,'cp1251');
}
else{
$('#result').html('Ошибка! тип файла не csv');
}
}
else {
$('#result').html('файл не выбран');
}
}
else {
// File and Blob are not supported
$('#result').html('браузер не поддерживает данную технологию');
}
}); |
24.05.202410:1824.05.2024 10:18:39
Если блог был полезным, можете угостить меня "чашечкой кофе" :)
Сбер по номеру телефона +7 (953) 585-13-09 Вероника.
Спасибо!