Fread php прочитать весь файл
Прочитав эту статью, вы узнаете, как создавать, получать доступ и управлять файлами на веб-сервере с помощью функции PHP fread и другими.
Чтение фиксированного количества символов
Функция PHP fread() может использоваться для чтения заданного количества символов из файла. Базовый синтаксис функции:
Она принимает два параметра - дескриптор файла и количество байтов, которые должны быть считаны. В следующем примере мы считываем 20 байтов из файла data.txt , включая пробелы. Предположим, data.txt содержит абзац текста " The quick brown fox jumps over the lazy dog ":
Приведенный выше пример даст следующий результат:
Чтение файлов с помощью PHP-функции fread()
Теперь, когда вы поняли, как открывать и закрывать файлы. В следующем разделе вы узнаете, как читать данные из файла. В PHP есть несколько функций для чтения данных из файла. Вы можете прочитать от одного символа до всего файла с помощью одной операции.
Переименование файлов с помощью функции PHP rename()
После прочтения с помощью php fread() файл можно переименовать файл или каталог, используя функцию PHP rename() , например:
Возвращаемые значения
Возвращает прочтенную строку или FALSE в случае возникновения ошибки.
Примечания
Замечание:
Если вы просто хотите получить содержимое файла в виде строки, используйте file_get_contents() , так как эта функция намного производительнее, чем код описанный выше.
Замечание:
Учтите, что fread() читает начиная с текущей позиции файлового указателя. Используйте функцию ftell() для нахождения текущей позиции указателя и функцию rewind() для перемотки позиции указателя в начало.
Поскольку PHP является серверным языком программирования, он позволяет вам работать с файлами и каталогами, хранящимися на веб-сервере. В этом руководстве вы узнаете, как создавать, получать доступ и управлять файлами на вашем веб-сервере с помощью функций файловой системы PHP.
Функции файловой системы PHP
В следующей таблице представлен обзор некоторых других полезных функций файловой системы PHP, которые можно использовать для динамического чтения и записи файлов.
Функция | Описание |
---|---|
fgetc() | Читает по одному символу за раз. |
fgets() | Читает по одной строке за раз. |
fgetcsv() | Читает строку значений, разделенных запятыми. |
filetype() | Возвращает тип файла. |
feof() | Проверяет, достигнут ли конец файла. |
is_file() | Проверяет, является ли файл обычным файлом. |
is_dir() | Проверяет, является ли файл каталогом. |
is_executable() | Проверяет, является ли файл исполняемым. |
realpath() | Возвращает канонизированный абсолютный путь. |
rmdir() | Удаляет пустой каталог. |
Пожалуйста, ознакомьтесь со справочником по файловой системе PHP, чтобы узнать о других полезных функциях файловой системы PHP.
Насколько публикация полезна?
Нажмите на звезду, чтобы оценить!
Средняя оценка 5 / 5. Количество оценок: 1
Оценок пока нет. Поставьте оценку первым.
Функции файловой системы PHP
В приведенной ниже таблице представлен обзор других полезных функций, которые можно использовать для динамического чтения и записи файлов ( альтернатива PHP fread() и другим функциям ):
Указатель ( resource ) на файл, обычно создаваемый с помощью функции fopen() .
length указывает размер прочитанных данных в байтах.
Смотрите также
- fwrite() - Бинарно-безопасная запись в файл
- fopen() - Открывает файл или URL
- fsockopen() - Открывает соединение с интернет-сокетом или доменным сокетом Unix
- popen() - Открывает файловый указатель процесса
- fgets() - Читает строку из файла
- fgetss() - Читает строку из файла и удаляет HTML-теги
- fscanf() - Обрабатывает данные из файла в соответствии с форматом
- file() - Читает содержимое файла и помещает его в массив
- fpassthru() - Выводит все оставшиеся данные из файлового указателя
- ftell() - Возвращает текущую позицию указателя чтения/записи файла
- rewind() - Сбрасывает курсор файлового указателя
- unpack() - Распаковать данные из бинарной строки
Открытие файла с помощью функции PHP fopen()
Для работы с файлом сначала нужно его открыть функцией fopen() . Ее синтаксис:
Первый параметр, передаваемый в fopen() , это имя файла, который нужно открыть, а второй - режим открытия. Например:
Файл может быть открыт в одном из следующих режимов:
Режим | Что он делает |
R | Открывает файл только для чтения. |
r+ | Открывает файл для чтения и записи. |
W | Открывает файл только для записи и очищает содержимое файла. Если файл не существует, PHP попытается его создать. |
w+ | Открывает файл для чтения и записи и очищает содержимое файла. Если файл не существует, PHP попытается его создать. |
A | Открывает файл только для записи. Сохраняет содержимое файла, записывая его в конец файла. Если файл не существует, PHP попытается его создать. |
a+ | Открывает файл для чтения и записи. Сохраняет содержимое файла, записывая его в конец файла. Если файл не существует, он будет создан. Можно использовать вместо PHP fread () |
X | Открывает файл только для записи. Возвращает значение FALSE и генерирует ошибку, если файл уже существует. Если файл не существует, PHP попытается его создать. |
x+ | Открывает файл для чтения и записи; в противном случае имеет такое же поведение, как «x». |
Совет . Операции с файлами и папками часто сопряжены с ошибками. Поэтому рекомендуется применить форму проверки ошибок, чтобы при их возникновении скрипт обработал ошибку.
Руководство по загрузке файлов на сервер в PHP
В этом руководстве мы узнаем, как загружать файлы на удаленный сервер с помощью простой HTML-формы и PHP. Вы можете загружать файлы любого типа, например изображения, видео, ZIP-файлы, документы Microsoft Office, PDF-файлы, а также исполняемые файлы и множество других типов файлов. Шаг 1. Создание HTML-формы для загрузки файла В следующем примере будет создана простая HTML-форма, которую…
User Contributed Notes 31 notes
I couldn't get some of the previous resume scripts to work with Free Download Manager or Firefox. I did some clean up and modified the code a little.
function dl_file_resumable ( $file , $is_resume = TRUE )
//First, see if the file exists
if (! is_file ( $file ))
die( "404 File not found!" );
>
//Gather relevent info about file
$size = filesize ( $file );
$fileinfo = pathinfo ( $file );
$file_extension = strtolower ( $path_info [ 'extension' ]);
//This will set the Content-Type to the appropriate setting for the file
switch( $file_extension )
case 'exe' : $ctype = 'application/octet-stream' ; break;
case 'zip' : $ctype = 'application/zip' ; break;
case 'mp3' : $ctype = 'audio/mpeg' ; break;
case 'mpg' : $ctype = 'video/mpeg' ; break;
case 'avi' : $ctype = 'video/x-msvideo' ; break;
default: $ctype = 'application/force-download' ;
>
//figure out download piece from range (if set)
list( $seek_start , $seek_end ) = explode ( '-' , $range , 2 );
//set start and end based on range (if set), else set defaults
//also check for invalid ranges.
$seek_end = (empty( $seek_end )) ? ( $size - 1 ) : min ( abs ( intval ( $seek_end )),( $size - 1 ));
$seek_start = (empty( $seek_start ) || $seek_end < abs ( intval ( $seek_start ))) ? 0 : max ( abs ( intval ( $seek_start )), 0 );
header ( 'Accept-Ranges: bytes' );
header ( 'Content-Range: bytes ' . $seek_start . '-' . $seek_end . '/' . $size );
>
//headers for IE Bugs (is this necessary?)
//header("Cache-Control: cache, must-revalidate");
//header("Pragma: public");
header ( 'Content-Type: ' . $ctype );
header ( 'Content-Disposition: attachment; filename keyword">. $filename . '"' );
header ( 'Content-Length: ' .( $seek_end - $seek_start + 1 ));
//open the file
$fp = fopen ( $file , 'rb' );
//seek to start of missing part
fseek ( $fp , $seek_start );
//start buffered download
while(! feof ( $fp ))
//reset time limit for big files
set_time_limit ( 0 );
print( fread ( $fp , 1024 * 8 ));
flush ();
ob_flush ();
>
Описание родственных функций вы сможете найти в разделах Каталоги и Выполнение программ.
За списком обёрток URL для работы с удалёнными файлами и пояснениями обращайтесь к главе Поддерживаемые протоколы и обёртки.
Содержание
Открытие файла с помощью PHP-функции fopen()
Для работы с файлом вам сначала нужно открыть файл. Функция PHP fopen() используется для открытия файла. Базовый синтаксис этой функции может быть задан следующим образом:
Первый параметр, передаваемый в fopen() , указывает имя файла, который вы хотите открыть, а второй параметр указывает, в каком режиме файл должен быть открыт. Например:
Файл можно открыть в одном из следующих режимов:
Режим | Что он делает |
---|---|
r | Открывает файл только для чтения. |
r+ | Открывает файл для чтения и записи. |
w | Открывает файл только для записи и очищает содержимое файла. Если файл не существует, PHP попытается его создать. |
w+ | Открывает файл для чтения, записи и очищает содержимое файла. Если файл не существует, PHP попытается его создать. |
a | Открывает файл только для записи. Сохраняет содержимое файла, записывая его в конец. Если файл не существует, PHP попытается его создать. |
a+ | Открывает файл для чтения и записи. Сохраняет содержимое файла, записывая его в конец. Если файл не существует, PHP попытается его создать. |
x | Открывает файл только для записи. Возвращает FALSE и выдает ошибку, если файл уже существует. Если файл не существует, PHP попытается его создать. |
x+ | Открывает файл для чтения и записи; в противном случае он ведет себя так же, как ‘x’. |
Операции с файлами и каталогами подвержены ошибкам. Поэтому рекомендуется реализовать некоторую форму проверки ошибок, чтобы в случае возникновения ошибки ваш скрипт корректно ее обработал. См. Руководство по обработке ошибок в PHP.
Чтение фиксированного количества символов
Функцию fread() можно использовать для чтения указанного количества символов из файла. Базовый синтаксис этой функции можно задать с помощью.
Эта функция принимает два параметра — дескриптор файла и количество байтов для чтения. В следующем примере из файла data.txt считывается 20 байтов, включая пробелы. Предположим, файл data.txt содержит абзац текста «The quick brown fox jumps over the lazy dog.»
Переименование файлов с помощью PHP-функции rename()
Вы можете переименовать файл или каталог с помощью PHP-функции rename() , например:
Чтение всего содержимого файла
Функцию fread() можно использовать вместе с функцией filesize() для одновременного чтения всего файла. Функция filesize() возвращает размер файла в байтах.
Самый простой способ прочитать все содержимое файла в PHP — использовать функцию readfile() . Эта функция позволяет вам читать содержимое файла, не открывая его. В следующем примере будет сгенерирован тот же результат, что и в примере выше:
Другой способ прочитать все содержимое файла без необходимости его открытия — использовать функцию file_get_contents() . Эта функция принимает имя и путь к файлу и считывает весь файл в строковую переменную. Вот пример:
Еще один метод чтения всех данных из файла — это PHP-функция file() . Она выполняет ту же работу, что и функция file_get_contents() , но возвращает содержимое файла в виде массива строк, а не отдельной строки. Каждый элемент возвращаемого массива соответствует строке в файле.
Для обработки данных файла необходимо выполнить итерацию по массиву с помощью цикла foreach. Вот пример, который считывает файл в массив, а затем отображает его с помощью цикла:
Закрытие файла
Как только вы закончите чтение файла с помощью PHP fread , его нужно закрыть. Для этого используется функция fclose() :
Примечание . Хотя PHP автоматически закрывает все открытые файлы, когда скрипт завершается, рекомендуется закрыть файл после выполнения всех операций.
Примеры
// получает содержимое файла в строку
$filename = "/usr/local/something.txt" ;
$handle = fopen ( $filename , "r" );
$contents = fread ( $handle , filesize ( $filename ));
fclose ( $handle );
?>?php
На системах, которые различают бинарные и текстовые файлы (к примеру, Windows), файл должен быть открыт с использованием флага 'b' в параметре mode функции fopen() .
$filename = "c:\\files\\somepic.jpg" ;
$handle = fopen ( $filename , "rb" );
$contents = fread ( $handle , filesize ( $filename ));
fclose ( $handle );
?>?php
При чтении чего-либо отличного от локальных файлов, например потоков, возвращаемых при чтении удалённых файлов или из popen() и fsockopen() , чтение остановится после того, как пакет станет доступным. Это означает, что вы должны собирать данные вместе по кусочкам, как показано на примере ниже.
$handle = fopen ( "http://www.example.com/" , "rb" );
$contents = stream_get_contents ( $handle );
fclose ( $handle );
?>?php
$handle = fopen ( "http://www.example.com/" , "rb" );
if ( FALSE === $handle ) exit( "Не удалось открыть поток по url адресу" );
>
while (! feof ( $handle )) $contents .= fread ( $handle , 8192 );
>
fclose ( $handle );
?>
Запись файлов с помощью PHP-функции fwrite()
Точно так же вы можете записывать или добавлять данные в существующий файл с помощью PHP-функции fwrite() . Базовый синтаксис этой функции может быть задан следующим образом:
Функция fwrite() принимает два параметра — дескриптор файла и строку данных, которые должны быть записаны, как показано в следующем примере:
В приведенном выше примере, если файл note.txt не существует, PHP автоматически создаст его и запишет данные. Но если файл note.txt уже существует, PHP удалит содержимое этого файла, если оно есть, перед записью новых данных, однако, если вы просто хотите добавить файл и сохранить существующее содержимое, просто используйте режим a вместо w в приведенном выше примере.
Альтернативный способ — использовать функцию file_put_contents() . Это аналог функции file_get_contents() и простой метод записи данных в файл без необходимости его открытия. Эта функция принимает имя и путь к файлу вместе с данными, которые будут записаны в файл. Вот пример:
Если файл, указанный в функции file_put_contents() , уже существует, PHP по умолчанию перезапишет его. Если вы хотите сохранить содержимое файла, вы можете передать специальный флаг FILE_APPEND в качестве третьего параметра функции file_put_contents() . Он просто добавит новые данные в файл вместо того, чтобы перезаписывать его. Вот пример:
Закрытие файла с помощью PHP-функции fclose()
Закончив работу с файлом, его нужно закрыть. Функция fclose() используется для закрытия файла, как показано в следующем примере:
Хотя PHP автоматически закрывает все открытые файлы при завершении скрипта, рекомендуется закрывать файл после выполнения всех операций.
Примеры
// получает содержимое файла в строку
$filename = "/usr/local/something.txt" ;
$handle = fopen ( $filename , "r" );
$contents = fread ( $handle , filesize ( $filename ));
fclose ( $handle );
?>?php
На системах, которые различают бинарные и текстовые файлы (к примеру, Windows), файл должен быть открыт с использованием буквы 'b' в параметре mode функции fopen() .
$filename = "c:\\files\\somepic.jpg" ;
$handle = fopen ( $filename , "rb" );
$contents = fread ( $handle , filesize ( $filename ));
fclose ( $handle );
?>?php
При чтении чего-либо отличного от локальных файлов, например потоков, возвращаемых при чтении удаленных файлов или из popen() и fsockopen() , чтение остановится после того, как пакет станет доступным. Это означает, что вы должны собирать данные вместе по кусочкам, как показано на примере ниже.
// Для PHP 5 и выше
$handle = fopen ( "http://www.example.com/" , "rb" );
$contents = stream_get_contents ( $handle );
fclose ( $handle );
?>?php
$handle = fopen ( "http://www.example.com/" , "rb" );
if ( FALSE === $handle ) exit( "Не удалось открыть поток по url адресу" );
>
while (! feof ( $handle )) $contents .= fread ( $handle , 8192 );
>
fclose ( $handle );
?>
Удаление файлов с помощью PHP-функции unlink()
Вы можете удалять файлы или каталоги с помощью PHP-функции unlink() , например:
В следующей главе мы узнаем больше о разборе каталогов или папок в PHP.
Чтение из файлов с помощью функции PHP fread()
Теперь вы знаете, как открывать и закрывать файлы. В следующем разделе вы узнаете, как читать данные из файла. PHP включает в себя сразу несколько функций для чтения данных из файла. За одну операцию можно считать, как один символ, так и весь файл.
Удаление файлов с помощью функции PHP unlink()
Можно удалять файлы или папки с помощью функции PHP unlink() , например:
Чтение всего содержимого файла
Функция fread() может использоваться в связке с функцией filesize() для полного считывания всего файла. filesize() возвращает размер файла в байтах. PHP fread пример:
Приведенный выше пример даст следующий результат:
Самый простой способ прочитать все содержимое файла - это функция readfile() . Она позволяет считать содержимое файла, не открывая его. Следующий пример даст тот же результат, что и предыдущий пример:
Приведенный выше пример даст следующий результат:
Другой способ прочитать все содержимое файла, не открывая его - это функция file_get_contents() . Она принимает имя и путь к файлу и считывает весь файл в строковую переменную. Пример без PHP fread :
Еще один способ считывания всех данных из файла - это функция file() . Она работает аналогично функции file_get_contents() , но возвращает содержимое как массив строк, а не одну строку. Каждый элемент возвращаемого массива соответствует строке в файле.
Чтобы обработать данные файла, необходимо выполнить обработку массива через цикл foreach . В следующем примере, мы считываем файл в массив и затем отображаем его с помощью цикла:
Примечания
Замечание:
Если вы просто хотите получить содержимое файла в виде строки, используйте file_get_contents() , так как эта функция намного производительнее, чем код описанный выше.
Замечание:
Учтите, что fread() читает, начиная с текущей позиции файлового указателя. Используйте функцию ftell() для нахождения текущей позиции указателя и функцию rewind() для перемотки позиции указателя в начало.
Запись файлов с использованием функции PHP fwrite()
Можно записать данные в файл с помощью функции PHP fwrite() . Ее синтаксис:
Функция fwrite() принимает два параметра: дескриптор файла и строку данных, которые должны быть записаны:
В приведенном выше примере, если файл note.txt не существует, PHP автоматически создаст его и запишет данные. Но если note.txt уже существует, PHP перед записью новых данных стирает содержимое этого файла. Если вы просто хотите добавить файл и сохранить существующее содержимое, используйте режим a вместо w .
Альтернативный способ – file_put_contents() . Это аналог функции file_get_contents() , который предоставляет простой способ записи данных в файл без необходимости его открытия. Эта функция принимает имя и путь к файлу с данными, которые должны быть записаны. Например ( похожий на PHP fread пример ):
Если файл, указанный в функции file_put_contents() , уже существует, PHP по умолчанию перезапишет его. Если вы хотите сохранить содержимое файла, можно передать специальный флаг FILE_APPEND в качестве третьего параметра file_put_contents() . Тогда функция добавит новые данные в файл, а не перепишет их. Пример:
Похожие посты
User Contributed Notes 8 notes
I just learned that, to specify file names in a portable manner, you DON'T need 'DIRECTORY_SEPARATOR' - just use '/'. This really surprised and shocked me, as until now I typed about a zillion times 'DIRECTORY_SEPARATOR' to stay platform independent - unnecessary. Don't make the same mistake.
You have an array of directories (straightforward list of directories):
$array = array(
'/home/drapeko/var' ,
'/home/drapeko/var/y' ,
'/home/drapeko' ,
'/home' ,
'/var/libexec'
);
);
?>
And you would like to transform this array to hierarchy of directories:
$array = array (
'home' => array (
'drapeko' => array (
'var' => array (
'y' => array()
)
)
),
'var' => array(
'libexec' => array()
)
);
?>
How can you do it?
First of all the below function will help us.
/**
* This function converts real filesystem path to the string array representation.
*
* for example,
* '/home/drapeko/var/y will be converted to $result_array['home']['drapeko']['var']['y']
* '/home/drapeko/var/y/file.txt will be converted to $result_array['home']['drapeko']['var']['y']
*
* @param $path realpath of the directory
* @return string string array representation of the path
*/
function pathToArrayStr ( $path ) <
// TODO constants/configs?
$res_path = str_replace (array( ':/' , ':\\' , '/' , '\\' , DIRECTORY_SEPARATOR ), '/' , $path );
// if the first or last symbol is '/' delete it (e.g. for linux)
$res_path = preg_replace (array( "/^\//" , "/\/$/" ), '' , $res_path );
// create string
$res_path = '[\'' . str_replace ( '/' , '\'][\'' , $res_path ). '\']' ;
return $res_path ;
>
?>
It simply converts the real path of the file to array string representation.
How can you use this function? I know it looks like a little confusing. But it's quite simple. Consider the example below:
$result = array();
$check = array();
foreach( $array as $val ) <
$str = pathToArrayStr ( $val , 'result' );
foreach( $check as $ck ) <
if ( strpos ( $ck , $str ) !== false ) <
continue 2 ;
>
>
$check [] = $str ;
eval( '$result' . $str . ' = array();' );
>
print_r ( $result );
?>
Heh, how do you find it? This approach has helped me very much. I hope you will find it useful. :)
I made this function to search and/or display files by extension or for a string occurance in the filename. Any comments or enhancements are welcome offcourse. I'll update this function soon.
usage: list_files([string], [string], [int 1 | 0], [int 1 | 0]);
search for extension: list_files([string], [string], [0], [int 1 | 0]);
returns array: $myArray = list_files([string], [string], [0], [0]);
echo result: list_files([string], [string], [0], [1]);
search for string occurance: list_files([string], [string], [1], [int 1 | 0]);
returns array: $myArray = list_files([string], [string], [1], [0]);
echo result: list_files([string], [string], [1], [1]);
function list_files ( $directory , $stringSearch , $searchHandler , $outputHandler ) $errorHandler = false ;
$result = array();
if (! $directoryHandler = @ opendir ( $directory )) echo ( "
\nerror: directory \" $directory \" doesn't exist!\n\n" );
return $errorHandler = true ;
>
if ( $searchHandler === 0 ) while ( false !== ( $fileName = @ readdir ( $directoryHandler ))) if(@ substr ( $fileName , - @ strlen ( $stringSearch )) === $stringSearch ) @ array_push ( $result , $fileName );
>
>
>
if ( $searchHandler === 1 ) while( false !== ( $fileName = @ readdir ( $directoryHandler ))) if(@ substr_count ( $fileName , $stringSearch ) > 0 ) @ array_push ( $result , $fileName );
>
>
>
if (( $errorHandler === true ) && (@ count ( $result ) === 0 )) echo ( "
\nerror: no filetype \" $fileExtension \" found!\n\n" );
>
else sort ( $result );
if ( $outputHandler === 0 ) return $result ;
>
if ( $outputHandler === 1 ) echo ( "
\n" );\n" );
print_r ( $result );
echo ( "
>
>
>
This function searches a directory and returns an array of all files whose filename matches the specified regular expression. It's similar in concept to the Unix find program.
function findfile($location='',$fileregex='') if (!$location or !is_dir($location) or !$fileregex) return false;
>
$all = opendir($location);
while ($file = readdir($all)) if (is_dir($location.'/'.$file) and $file <> ".." and $file <> ".") $subdir_matches = findfile($location.'/'.$file,$fileregex);
$matchedfiles = array_merge($matchedfiles,$subdir_matches);
unset($file);
>
elseif (!is_dir($location.'/'.$file)) if (preg_match($fileregex,$file)) array_push($matchedfiles,$location.'/'.$file);
>
>
>
closedir($all);
unset($all);
return $matchedfiles;
>
ini_set ( 'auto_detect_line_endings' , true );
$contents = file ( 'unknowntype.txt' );
ini_set ( 'auto_detect_line_endings' , false );
$content2 = file ( 'unixfile.txt' );
?>
Note, with PHP 4.3 anytime Mac files are read using fgets or file you'll need to auto_detect_line_endings since \n is otherwise assumed. However, with PHP 5.0, stream_get_line() will allow you to specify what line ending character to read up to.
\\ Read a line from a MAC file
stream_get_line($fp, 4096, "\r");
\\ Read a line from a UNIX file
stream_get_line($fp, 4096, "\n");
\\ Read a line from a DOS file
stream_get_line($fp, 4096, "\r\n");
\\ Read a line up to any filesystem line ending
ini_set('auto_detect_line_endings', true); fgets($fp);
\\ You can also make up your own line ending characters:
\\ Read up to the first instance of ":"
stream_get_line($fp, 4096, ":");
This is a function I use to determine if a file contains Binary information. I use this for my search engine so that it doesn't try to index files like .zip or .mp3 or any other file that doesn't contain readable information. It makes use of the Character Type Extension if it's loaded, if it's not then it uses Regular Expressions.
function is_binary($link)
$tmpStr = '';
@$fp = fopen($link, 'rb');
@$tmpStr = fread($fp, 256);
@fclose($fp);
if($tmpStr != '')
$tmpStr = str_replace(chr(10), '', $tmpStr);
$tmpStr = str_replace(chr(13), '', $tmpStr);
a function based on "tunnelareaten at gmail dot com"s idea to search for files in a given directory by a searchstring or by fileextension.
I added support to search recursively through all sub-directories an to determine weather the filepath should be returned or not.
// recursive function to get contents of given folder by searchterm or fileextension
// (does not show folders)
// standards: Foldername: string
// Searchterm: string
// Searchtype: ext/search (file-extension or searchterm within filename)
// SaveCompletePath: true/1
// usage: array FileSearch_r($Folder,$Search[,$SearchType,$SavePath])
function FileSearch_r ( $Dir , $Search , $SearchType = "search" , $SavePath = 1 ) $Array =array();
$D = dir ( $Dir );
while ( false !==( $Entry = $D -> read ()))
if ( $Entry != '.' && $Entry != '..' ) $Entry = $Dir . $Entry ;
if ( is_dir ( $Entry )) $Array = array_merge ( $Array , FileSearch_r ( $Entry . '/' , $Search , $SearchType , $SavePath ));
else
if ( $SearchType == "search"
? substr_count ( $Entry , $Search )> 0
:( $SearchType == "ext"
? substr ( $Entry ,- strlen ( $Search ))=== $Search
: true ))
$Array []= $Entry ;
>
$D -> close ();
sort ( $Array , SORT_STRING );
if(!(bool) $SavePath ) $Array = str_replace ( $Dir , "" , array_values ( $Array ));
return $Array ;
>
?>
Here is a useful function if you're having trouble writing raw bytes into a file.
It receives an integer and returns an array containing the ASCII values of the bytes on each index of the array.
function int2bytes($number) $byte = $number;
$i=0;
do $dec_tmp = $byte;
$byte = bcdiv($byte,256,0);
$resto = $dec_tmp - (256 * $byte);
$return[] = $resto;
> while($byte >= 256);
if($byte) $return[] = $byte;
return array_reverse($return);
>
$arr will contain the following values:
Array
(
[0] => 1
[1] => 40
[2] => 56
)
Now, to write this data to the file, just use a fputs() with chr(), just like this:
Указатель ( resource ) на файл, обычно создаваемый с помощью функции fopen() .
length указывает размер прочитанных данных в байтах.
Руководство по GET и POST запросам в PHP
Разработка сайтов для бизнеса
Если у вас есть вопрос, на который вы не знаете ответ — напишите нам, мы поможем разобраться. Мы всегда рады интересным знакомствам и новым проектам.
Возвращаемые значения
Возвращает прочтённую строку или false в случае возникновения ошибки.
Читайте также: