- Вывод данных из файла построчно
- Чтение и запись данных в файле
- Чтение из файла
- Запись в файл
- Запись и чтение файлов в PHP
- Сохранение в файл
- File_put_contents:
- Fopen / fwrite:
- Возможные режимы fopen():
- file_get_contents
- Описание
- Список параметров
- Возвращаемые значения
- Ошибки
- Список изменений
- Примеры
- Примечания
- Смотрите также
- file_put_contents
- Описание
- Список параметров
- Возвращаемые значения
- Примеры
- Примечания
- Смотрите также
- User Contributed Notes 36 notes
Вывод данных из файла построчно
числа записаны именно в одну строку (и с пробелами или нет) или каждое число на новой строке?
Добавлено через 19 минут
в общем на ваше условие такой вариант
Подскажите,а если в файле article.txt числа записанный в таком виде:
А34-41
Б43-46
В92-54
Тоесть каждое число в нужной строке,в таком виде и нужно вывести,но при
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Вывод данных из БД построчно
Существует база данных gb с таблицей gb и записями в ней. Состав таблицы следующий: id, dt.
Написать программу на языке PHP для ввода данных построчно из текстового файла в массив
написать программу на языке PHP для ввода данных построчно из текстового файла в массив, поиска.
Вывод построчно из массива
Здравствуйте. Столкнулся со следующей проблемой: есть форма с кучей всего, что важно — много .
Вывод массива построчно
Голова уже гудит, не могу найти косяк, вроде не первый раз уже подобное пишу, но в этот раз массив.
лучше (и проще) всего — заменить file_get_contents() на file() и выводить в цикле
Добавлено через 4 минуты
Вывод массива построчно PHP
Добрый вечер, форумчане! Прошу о помощи. Помогите пожалуйста вывести массив в таком виде. При.
Вывод данных из файла
Здравствуйте форумчане! Нужно вывести, до определенного знака (допустим «///»), данные из txt.
Вывод данных(Из файла PHP)
Есть файл » Config.php » там есть строчки $fstunban = ’50’; // ru: цена первого разбана //.
Вывод данных из TXT файла в БД
Добрый день. Есть txt файл с данными, строк в нем много, 500. Нужно добавить эти данные в БД. Вот.
Источник
Чтение и запись данных в файле
При изучении данной темы нужно учитывать, что для обращения к файлу одни PHP функции используют дескриптор файла, а другие путь к файлу. Для получения дескриптора нужно открыть файл. Это рассматривалось в предыдущей теме.
Чтение из файла
Функцию fread() можно использовать для получения определённого количества данных из файла.
fread (файл, длина)
файл — дескриптор файла
длина — размер данных в байтах
Если конец файла будет достигнут раньше, чем функция прочитает указанный размер данных, то она вернёт строку меньшего размера. Данную функцию удобно применять для чтения бинарных файлов.
При указании длины строки и при перемещении указателя нужно учитывать, что русские буквы имеют размер не один байт, а больше. Подробнее об этом сказано в теме «Работа со строками». Также не забудте, что в начале файла в кодировке UTF-8 есть несколько байт. В кодировке UTF-8 без BOM эти байты отсутствуют.
Прочитаем перыве 10 байт из файла myfile.txt. Откроем его в режиме ‘r+’. Указатель будет находится в начале.
Если в файле присутствуют русские буквы, то последняя буква может отображаться неправильно. Это происходит потому, что символ имеет размер больше одного байта и одна часть прочитана, а вторая нет.
Функция fgets() возвращает одну строку, начиная от указателя до конца строки.
fgets (файл, длина)
файл — дескриптор файла
длина — позволяет указать размер строки в байтах. При этом, если будет достигнут конец строки, то следующая строка не входит в результат работы функции, даже если строка будет меньше указанной длины. Необязательный параметр.
Если длина не указана, то в старых версиях PHP максимальная длина возвращаемой строки была ограничена. В более новых версиях этого ограничения нет.
Запуск функции в цикле позволяет произвести чтение файла построчно.
Прочитаем одну строку строку из файла myfile.txt. Так как указатель уже перемещён, то будет прочитана не вся строка, а от указателя.
Функция fgetss() также возвращает одну строку, но удаляет из неё HTML теги. Если в коде присутствует PHP скрипт, то он тоже будет удалён.
fgetss (файл, длина, нужные тэги)
файл — дескриптор файла
длина — размер строки в байтах. Необязательный параметр.
нужные теги — позволяет указать тэги, которые не будут удалены.
Существует функция fgetc() , которая возвращает один символ из файла.
Функция file() читает весь файл и помещает данные в массив. Каждая строка помещается в элемент массива. Для работы этой функции не требуется открывать файл. Расположение указателя не учитывается.
file (путь к файлу, флаги, контекст)
путь к файлу — абсолютный или относительный путь к файлу
флаги — флаги, определяющие работу функции. Необязательный параметр.
контекст — позволяет указать ресурс контекста
Можно указать такие флаги:
FILE_USE_INCLUDE_PATH — позволяет искать файл в папках include path.
FILE_IGNORE_NEW_LINES — удаляет символ конца строки. Если этот флаг не установлен, то в каждой строке будет символ конца строки.
FILE_SKIP_EMPTY_LINES — не добавляет в массив пустые строки.
Если указывается несколько флагов, то они разделяются оператором «|».
Выведем файл myfile.txt на страницу.
Запись в файл
Функция fwrite() записывает данные в файл.
fwrite (файл, данные, длина)
файл — дескриптор файла
данные — данные, которые записываются
длина — максимальный размер записываемых данных в байтах. Может быть записана не вся строка, а только указанное количество байт. Необязательный параметр.
Если указатель находится в начале или середине файла, функция заменяет символы, находящиеся в файле, на новые. То есть, если записывается 5 символов, то из файла удаляются 5 символов и на их место добавляются новые.
Когда вы записываете русские буквы, то кодировка скрипта должна соответствовать кодировке файла.
Запишем в файл строку «текст из скрипта». В нашем примере дескрептор находится в середине файла и строка запишется туда. Когда нужно добавить данные в конец файла, то его можно открыть в режиме ‘a’. А когда нужно перезаписать файл, его открывают в режиме ‘w’. Мы не будем передвигать указатель, запишем данные туда, где он находится.
Коприрование материалов сайта возможно только с согласия администрации
Источник
Запись и чтение файлов в PHP
Примеры сохранения и чтения текстовых данных и массивов в файлы.
Сохранение в файл
Функция file_put_contents() записывает содержимое переменной в файл, если файла не существует. то пытается его создать, если существует то полностью перезапишет его.
File_put_contents:
Fopen / fwrite:
Набор функций fopen, fwrite, fclose предназначены для более гибкой работы с файлами.
- fopen – открытие или создание файла.
- fwrite – запись данных.
- fclose – закрытие файла.
Возможные режимы fopen():
Mode | Описание |
---|---|
r | Открывает файл только для чтения, помещает указатель в начало файла. |
r+ | Открывает файл для чтения и записи, помещает указатель в начало файла. |
w | Открывает файл только для записи, помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует – пробует его создать. |
w+ | Открывает файл для чтения и записи, помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует – пытается его создать. |
a | Открывает файл только для записи, помещает указатель в конец файла. Если файл не существует – пытается его создать. |
a+ | Открывает файл для чтения и записи, помещает указатель в конец файла. Если файл не существует – пытается его создать. |
x | Создаёт и открывает только для записи; помещает указатель в начало файла. Если файл уже существует, вызов fopen() закончится неудачей, вернёт false и выдаст ошибку. Если файл не существует, попытается его создать. |
x+ | Создаёт и открывает для чтения и записи, в остальном имеет то же поведение, что и « x ». |
c | Открывает файл только для записи. Если файл не существует, то он создаётся. Если же файл существует, то он не обрезается (в отличие от « w »), и вызов к этой функции не вызывает ошибку (также как и в случае с « x »). Указатель на файл будет установлен на начало файла. |
c+ | Открывает файл для чтения и записи, в остальном имеет то же поведение, что и « c ». |
Доступно в место fwrite() используют fputs() , разницы ни какой т.к. эта функция является псевдонимом.
Источник
file_get_contents
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
file_get_contents — Читает содержимое файла в строку
Описание
Данная функция похожа на функцию file() с той лишь разницей, что file_get_contents() возвращает содержимое файла в строке, начиная с указанного смещения offset и до length байт. В случае неудачи, file_get_contents() вернёт false .
Использование функции file_get_contents() наиболее предпочтительно в случае необходимости получить содержимое файла целиком, поскольку для улучшения производительности функция использует технику отображения файла в память (memory mapping), если она поддерживается вашей операционной системой.
Если вы открываете URI, содержащий спецсимволы, такие как пробел, вам нужно закодировать URI при помощи urlencode() .
Список параметров
Имя читаемого файла.
Можно использовать константу FILE_USE_INCLUDE_PATH для поиска файла в include path. Только помните, что если вы используете строгую типизацию, то так сделать не получится, поскольку FILE_USE_INCLUDE_PATH имеет тип int . В таком случае используйте true .
Корректный ресурс контекста, созданный с помощью функции stream_context_create() . Если в использовании особого контекста нет необходимости, можно пропустить этот параметр передав в него значение null .
Смещение, с которого начнётся чтение оригинального потока. Отрицательное значение смещения будет отсчитываться с конца потока.
Поиск смещения ( offset ) не поддерживается при работе с удалёнными файлами. Попытка поиска смещения на нелокальных файлах может работать при небольших смещениях, но результат будет непредсказуемым, так как функция работает на буферизованном потоке.
Максимальный размер читаемых данных. По умолчанию чтение осуществляется пока не будет достигнут конец файла. Учтите, что этот параметр применяется и к потоку с фильтрами.
Возвращаемые значения
Функция возвращает прочтённые данные или false в случае возникновения ошибки.
Эта функция может возвращать как логическое значение false , так и значение не типа boolean, которое приводится к false . За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.
Ошибки
Будет сгенерирована ошибка уровня E_WARNING в случаях, если не удастся найти filename , задан length меньше нуля, или поиск по смещению offset в потоке завершится неудачно.
Когда file_get_contents() вызывается в каталоге, в Windows ошибка генерируется E_WARNING , а с PHP 7.4 также в других операционных системах.
Список изменений
Версия | Описание |
---|---|
7.1.0 | Добавлена поддержка отрицательных значений offset . |
Примеры
Пример #1 Получить и вывести исходный код домашней страницы сайта
Пример #2 Поиск файлов в include_path
Пример #3 Чтение секции файла
Результатом выполнения данного примера будет что-то подобное:
Пример #4 Использование потоковых контекстов
// Создаём поток
$opts = array(
‘http’ =>array(
‘method’ => «GET» ,
‘header’ => «Accept-language: en\r\n» .
«Cookie: foo=bar\r\n»
)
);
$context = stream_context_create ( $opts );
// Открываем файл с помощью установленных выше HTTP-заголовков
$file = file_get_contents ( ‘http://www.example.com/’ , false , $context );
?>
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen() . Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.
При использовании SSL, Microsoft IIS нарушает протокол, закрывая соединение без отправки индикатора close_notify . PHP сообщит об этом как «SSL: Fatal Protocol Error» в тот момент, когда вы достигнете конца данных. Чтобы обойти это, вы должны установить error_reporting на уровень, исключающий E_WARNING. PHP умеет определять, что на стороне сервера находится проблемный IIS при открытии потока с помощью обёртки https:// и не выводит предупреждение. Если вы используете fsockopen() для создания ssl:// сокета, вы сами отвечаете за определение и подавление этого предупреждения.
Смотрите также
- file() — Читает содержимое файла и помещает его в массив
- fgets() — Читает строку из файла
- fread() — Бинарно-безопасное чтение файла
- readfile() — Выводит файл
- file_put_contents() — Пишет данные в файл
- stream_get_contents() — Читает оставшуюся часть потока в строку
- stream_context_create() — Создаёт контекст потока
- $http_response_header
Источник
file_put_contents
(PHP 5, PHP 7, PHP 8)
file_put_contents — Пишет данные в файл
Описание
Функция идентична последовательным успешным вызовам функций fopen() , fwrite() и fclose() .
Если filename не существует, файл будет создан. Иначе, существующий файл будет перезаписан, за исключением случая, если указан флаг FILE_APPEND .
Список параметров
Путь к записываемому файлу.
Записываемые данные. Может быть типа string , array или ресурсом потока.
Если data является потоковым ресурсом ( stream ), оставшийся буфер этого потока будет скопирован в указанный файл. Это похоже на использование функции stream_copy_to_stream() .
Также вы можете передать одномерный массив в качестве параметра data . Это будет эквивалентно вызову file_put_contents($filename, implode(», $array)) .
Значением параметра flags может быть любая комбинация следующих флагов, соединённых бинарным оператором ИЛИ ( | ).
Флаг | Описание |
---|---|
FILE_USE_INCLUDE_PATH | Ищет filename в подключаемых директориях. Подробнее смотрите директиву include_path. |
FILE_APPEND | Если файл filename уже существует, данные будут дописаны в конец файла вместо того, чтобы его перезаписать. |
LOCK_EX | Получить эксклюзивную блокировку на файл на время записи. Другими словами, между вызовами fopen() и fwrite() произойдёт вызов функции flock() . Это не одно и то же, что вызов fopen() с флагом «x». |
Корректный ресурс контекста, созданный с помощью функции stream_context_create() .
Возвращаемые значения
Функция возвращает количество записанных байт в файл, или false в случае возникновения ошибки.
Эта функция может возвращать как логическое значение false , так и значение не типа boolean, которое приводится к false . За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.
Примеры
Пример #1 Пример простого использования
Пример #2 Использование флагов
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen() . Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.
Смотрите также
- fopen() — Открывает файл или URL
- fwrite() — Бинарно-безопасная запись в файл
- file_get_contents() — Читает содержимое файла в строку
- stream_context_create() — Создаёт контекст потока
User Contributed Notes 36 notes
File put contents fails if you try to put a file in a directory that doesn’t exist. This creates the directory.
function file_force_contents ( $dir , $contents ) <
$parts = explode ( ‘/’ , $dir );
$file = array_pop ( $parts );
$dir = » ;
foreach( $parts as $part )
if(! is_dir ( $dir .= «/ $part » )) mkdir ( $dir );
file_put_contents ( » $dir / $file » , $contents );
>
?>
It should be obvious that this should only be used if you’re making one write, if you are writing multiple times to the same file you should handle it yourself with fopen and fwrite, the fclose when you are done writing.
file_put_contents() for 1,000,000 writes — average of 3 benchmarks:
real 0m3.932s
user 0m2.487s
sys 0m1.437s
fopen() fwrite() for 1,000,000 writes, fclose() — average of 3 benchmarks:
real 0m2.265s
user 0m1.819s
sys 0m0.445s
function file_force_contents ( $fullPath , $contents , $flags = 0 ) <
$parts = explode ( ‘/’ , $fullPath );
array_pop ( $parts );
$dir = implode ( ‘/’ , $parts );
if( ! is_dir ( $dir ) )
mkdir ( $dir , 0777 , true );
file_put_contents ( $fullPath , $contents , $flags );
>
file_force_contents ( ROOT . ‘/newpath/file.txt’ , ‘message’ , LOCK_EX );
?>
Please note that when saving using an FTP host, an additional stream context must be passed through telling PHP to overwrite the file.
/* set the FTP hostname */
$user = «test» ;
$pass = «myFTP» ;
$host = «example.com» ;
$file = «test.txt» ;
$hostname = $user . «:» . $pass . «@» . $host . «/» . $file ;
/* the file content */
$content = «this is just a test.» ;
/* create a stream context telling PHP to overwrite the file */
$options = array( ‘ftp’ => array( ‘overwrite’ => true ));
$stream = stream_context_create ( $options );
/* and finally, put the contents */
file_put_contents ( $hostname , $content , 0 , $stream );
?>
I faced the problem of converting a downloaded csv file that had Windows-1252 encoding, so to convert it to UTF-8 this worked for me:
$from = ‘Windows-1252’;
$to = ‘UTF-8’;
file_put_contents($this->path(), mb_convert_encoding($content, $to, $from));
where «$this->path()» has the path of the file. Using this the file is converted from Windows-1252 to UTF-8.
With this you can import it with mysqlimport with no problems.
This functionality is now implemented in the PEAR package PHP_Compat.
More information about using this function without upgrading your version of PHP can be found on the below link:
I suggest to expand file_force_contents() function of TrentTompkins at gmail dot com by adding verification if patch is like: «../foo/bar/file»
if (strpos($dir, «../») === 0)
$dir = str_replace(«..», substr(__DIR__, 0, strrpos(__DIR__, «/»)), $dir);
It’s important to understand that LOCK_EX will not prevent reading the file unless you also explicitly acquire a read lock (shared locked) with the PHP ‘flock’ function.
i.e. in concurrent scenarios file_get_contents may return empty if you don’t wrap it like this:
= fopen ( ‘test.txt’ , ‘rt’ );
flock ( $myfile , LOCK_SH );
$read = file_get_contents ( ‘test.txt’ );
fclose ( $myfile );
?>
If you have code that does a file_get_contents on a file, changes the string, then re-saves using file_put_contents, you better be sure to do this correctly or your file will randomly wipe itself out.
Make sure not to corrupt anything in case of failure.
function file_put_contents_atomically ( $filename , $data , $flags = 0 , $context = null ) <
if ( file_put_contents ( $filename . «
» , $data , $flags , $context ) === strlen ( $contents )) <
return rename ( $filename . «
» , $context );
return FALSE ;
>
It’s worth noting that you must make sure to use the correct path when working with this function. I was using it to help with logging in an error handler and sometimes it would work — while other times it wouldn’t. In the end it was because sometimes it was called from different paths resulting in a failure to write to the log file.
__DIR__ is your friend.
In reply to the previous note:
If you want to emulate this function in PHP4, you need to return the bytes written as well as support for arrays, flags.
I can only figure out the FILE_APPEND flag and array support. If I could figure out «resource context» and the other flags, I would include those too.
File put contents fails if you try to put a file in a directory that doesn’t exist. This function creates the directory.
i have updated code of «TrentTompkins at gmail dot com». thanks
/**
* @param string $filename
file name including folder.
* example :: /path/to/file/filename.ext or filename.ext
* @param string $data
The data to write.
*
* @param int $flags same flags used for file_put_contents.
* more info: http://php.net/manual/en/function.file-put-contents.php
* @return bool TRUE file created succesfully
FALSE failed to create file.
*/
function file_force_contents ( $filename , $data , $flags = 0 ) <
if(! is_dir ( dirname ( $filename )))
mkdir ( dirname ( $filename ). ‘/’ , 0777 , TRUE );
return file_put_contents ( $filename , $data , $flags );
>
// usage
file_force_contents ( ‘test1.txt’ , ‘test1 content’ ); // test1.txt created
file_force_contents ( ‘test2/test2.txt’ , ‘test2 content’ );
// test2/test2.txt created «test2» folder.
/test3/test3.txt’ , ‘test3 content’ );
// /path/to/user/directory/test3/test3.txt created «test3» folder in user directory (check on linux «ll
To upload file from your localhost to any FTP server.
pease note ‘ftp_chdir’ has been used instead of putting direct remote file path. in ftp_put . remoth file should be only file name
= ‘*****’ ;
$usr = ‘*****’ ;
$pwd = ‘**********’ ;
$local_file = ‘./orderXML/order200.xml’ ;
$ftp_path = ‘order200.xml’ ;
$conn_id = ftp_connect ( $host , 21 ) or die ( «Cannot connect to host» );
ftp_pasv ( $resource , true );
ftp_login ( $conn_id , $usr , $pwd ) or die( «Cannot login» );
// perform file upload
ftp_chdir ( $conn_id , ‘/public_html/abc/’ );
$upload = ftp_put ( $conn_id , $ftp_path , $local_file , FTP_ASCII );
if( $upload ) < $ftpsucc = 1 ; >else < $ftpsucc = 0 ; >
// check upload status:
print (! $upload ) ? ‘Cannot upload’ : ‘Upload complete’ ;
print «\n» ;
// close the FTP stream
ftp_close ( $conn_id );
?>
This function doesn’t return False if all data isn’t write, especially when data is a stream resource
You must check yourself using return value.
= ‘https://monsite.fr/image.png’ ;
$size = filesize ( $url );
$written = file_put_contents ( ‘image.png’ , fopen ( $url , ‘r’ ));
if ( $size === false || $size != $written ) <
die( ‘Download failed’ );
>
?>
I’m updating a function that was posted, as it would fail if there was no directory. It also returns the final value so you can determine if the actual file was written.
public static function file_force_contents($dir, $contents) <
$parts = explode(‘/’, $dir);
$file = array_pop($parts);
$dir = »;
foreach($parts as $part) <
if (! is_dir($dir .= «<$part>/»)) mkdir($dir);
>
return file_put_contents(«<$dir><$file>«, $contents);
>
As to the previous user note, it would be wise to include that code within a conditional statement, as to prevent re-defining file_put_contents and the FILE_APPEND constant in PHP 5:
if ( ! function_exists ( ‘file_put_contents’ ) && ! defined ( ‘FILE_APPEND’ ) ) <
.
>
?>
Also, if the file could not be accessed for writing, the function should return boolean false, not 0. An error is different from 0 bytes written, in this case.
file_put_contents() strips the last line ending
If you really want an extra line ending at the end of a file when writing with file_put_contents(), you must append an extra PHP_EOL to the end of the line as follows.
= array( «these» , «are» , «new» , «lines» );
$contents = implode ( PHP_EOL , $a_str );
$contents .= PHP_EOL . PHP_EOL ;
file_put_contents ( «newfile.txt» , $contents );
print( «| $contents |» );
?>
You can see that when you print $contents you get two extra line endings, but if you view the file newfile.txt, you only get one.
I made a ftp_put_contents function.
function ftp_put_contents ( $fpc_path_and_name , $fpc_content ) <
//Temporary folder in the server
$cfg_temp_folder = str_replace ( «//» , «/» , $_SERVER [ ‘DOCUMENT_ROOT’ ]. «/_temp/» );
//FTP username
$cfg_user = «user» ;
//FTP password
$cfg_pass = «password» ;
//Document Root of FTP
$cfg_document_root = «DOCUMENT ROOT OF FTP» ;
//Link to the website
$cfg_site_link = «Link to the website» ;
//Check if conteins slash on the path of the file
$cotains_slash = strstr ( $fpc_path_and_name , «/» );
//Get filename and paths
if ( $cotains_slash ) <
$fpc_path_and_name_array = explode ( «/» , $fpc_path_and_name );
$fpc_file_name = end ( $fpc_path_and_name_array );
>
else <
$fpc_file_name = $fpc_path_and_name ;
>
//Create local temp dir
if (! file_exists ( $cfg_temp_folder )) <
if (! mkdir ( $cfg_temp_folder , 0777 )) <
echo «Unable to generate a temporary folder on the local server — $cfg_temp_folder .
» ;
die();
>
>
//Create local file in temp dir
if (! file_put_contents ( str_replace ( «//» , «/» , $cfg_temp_folder . $fpc_file_name ), $fpc_content )) <
echo «Unable to generate the file in the temporary location — » . str_replace ( «//» , «/» , $cfg_temp_folder . $fpc_file_name ). «.
» ;
die();
>
//Connection to the FTP Server
$fpc_ftp_conn = ftp_connect ( » $cfg_ftp_server » );
//Check connection
if (! $fpc_ftp_conn ) <
echo «Could not connect to server $cfg_ftp_server .
» ;
die();
>
else <
// login
// check username and password
if (! ftp_login ( $fpc_ftp_conn , » $cfg_user » , » $cfg_pass » )) <
echo «User or password.
» ;
die();
>
else <
//Document Root
if (! ftp_chdir ( $fpc_ftp_conn , $cfg_document_root )) <
echo «Error to set Document Root.
» ;
die();
>
//Check if there are folders to create
if ( $cotains_slash ) <
//Check if have folders and is not just the file name
if ( count ( $fpc_path_and_name_array ) > 1 ) <
//Remove last array
$fpc_remove_last_array = array_pop ( $fpc_path_and_name_array );
//Checks if there slashs on the path
if ( substr ( $fpc_path_and_name , 0 , 1 ) == «/» ) <
$fpc_remove_first_array = array_shift ( $fpc_path_and_name_array );
>
//Create each folder on ftp
foreach ( $fpc_path_and_name_array as $fpc_ftp_path ) <
if (!@ ftp_chdir ( $fpc_ftp_conn , $fpc_ftp_path )) <
if (! ftp_mkdir ( $fpc_ftp_conn , $fpc_ftp_path )) <
echo «Error creating directory $fpc_ftp_path .
» ;
>
else <
if (! ftp_chdir ( $fpc_ftp_conn , $fpc_ftp_path )) <
echo «Error go to the directory $fpc_ftp_path .
» ;
>
>
>
>
>
else <
//Check upload file
if (! ftp_put ( $fpc_ftp_conn , $fpc_file_name , str_replace ( «//» , «/» , $cfg_temp_folder . $fpc_file_name ), FTP_ASCII )) <
echo «File upload $fpc_path_and_name failed!
» ;
die();
>
else <
if (! unlink ( str_replace ( «//» , «/» , $cfg_temp_folder . $fpc_file_name ))) <
echo «Error deleting temporary file.
» ;
die();
>
else <
echo «File upload $cfg_site_link » . str_replace ( «//» , «/» , «/ $fpc_path_and_name » ). «‘> $cfg_site_link » . str_replace ( «//» , «/» , «/ $fpc_path_and_name » ). « successfully performed.
» ;
>
>
//Close connection to FTP server
ftp_close ( $fpc_ftp_conn );
>
>
>
Источник