Функции для работы с функциями

get_defined_functions
Возвращает перечень всех доступных функций.

Синтаксис:
array get_defined_functions()

Функция get_defined_functions() Возвращает многомерный массив, который содержит имена всех доступных сценарию функций.

print_r(get_defined_functions);

function_exists
Проверяет существование функции.

Синтаксис:
bool function_exists(string fuction_name)

Функция function_exists() возвращает значение true, если функция с именем function_name имеется в сценарии. В противном случае возвращает false.

if(function_exists("imagecreate")) { echo "Библиотека работы с графикой доступна!
";} else { echo "Библиотека работы с графикой недоступна!
";};

call_user_func
Производит косвенный выбор функции.

Синтаксис:
mixed call_user_func(string function_name [, mixed parameter [, mixed...]])

Функция call_user_func() вызывает функцию function_name и передает ей все остальные параметры parameter...

<?phpfunction myFunc($str) { echo $str;};call_user_func("myFunc", "Hello World");?>

create_function
Динамическое создание функции.

Синтаксис:
string create_function(string args, string code)

Функция create_function() создает анонимную функцию и возвращает имя, созданное для этой функции. Аргументы функции, перечисленные в аргументе args, обычно передаются в одинарных кавычках. Также передается тело функции в аргументе code. Это необходимо для того, чтобы недопустить замену интерпретатором переменных на значения. Если всеже ограничивать двойными кавычками, то необходимо предварять указание переменных слешем:\$var.

Обычно возвращаемые функцией имена содержат префикс lambda_.

При помощи этой функции можно создавать функции на основе информации, полученной во время исполнения сценария.

$func = create_function('$a,$b',           'return "$a*$b = ".$a*$b);');echo "Имя новой функции: $func<br>";echo $func(2,3);

Данный пример выведет следующее:

Имя новой функции: lambda_16

func_get_arg
Получение аргумента функции.

Синтаксис:
mixed func_get_arg(int arg_num);

Функция func_get_arg() возвращает указанный в arg_num агрумен, который был передан в текущую пользовательскую функцию в качестве параметра. Перечисление переданных в функцию параметров начинается с нуля.

В случае, если эта функция вызывается вне определения функции, то она выдает предупреждение об ошибке. Также предупреждение будет выдаваться при попытке узнать параметр, которого не существует в списке аргументов (функция возвратит false). Для того, чтобы функция работала корректно, необходимо заранее узнать общее количество параметров, которое передается в пользовательскую функцию с помощью функции func_num_args().

<?phpfunction func() { $num_args=func_num_args(); echo "Число аргументов у этой функции: $num_args<br>"; for($i=0;$i<$num_args;$i++) echo "$i агрумент: ".func_get_arg($i)."<br>";}; func("2",1,"tree");?>

func_get_args
Получение аргументов функции в массиве.

Синтаксис:
array func_get_args();

Функция func_get_args() возвращает в массиве список аргументов, с которым была вызвана текущая пользовательская функция. Если функция func_get_args() вызывается вне определения пользовательской функции, то выдается предупреждение об ошибке.

<?phpfunction func() { $num_args = func_num_args(); echo "Число аргументов у этой функции: $num_args<br>"; $func_list = func_get_args(); for($i=0;$i<$num_args;$i++) echo "$i агрумент номер $i: ".$func_list[$i]."<br>";}; func("2",1,"tree");?>

func_num_args
Возвращает число полученных аргументов в пользовательской функции.

Синтаксис:
int func_num_args();

Функция func_num_args() возвращает число аргументов, которые были переданы в текущую пользовательскую функцию.

Обычно эту функцию используют совместно с функциями func_get_arg() и func_get_args() в пользовательских функциях, которые могут принимать неопределенное количество параметров.

<?phpfunction func() { $num_args = func_num_args(); echo "Число аргументов у этой функции: $num_args<br>"; $func_list = func_get_args(); for($i=0;$i<$num_args;$i++) echo "$i агрумент номер $i: ".$func_list[$i]."<br>";}; func("2",1,"tree");?>

 

















Календарные функции

JDToGregorian
Преобразование дневного Юлианcкого счета в Грегорианскую дату.

Синтаксис:
string jdtogregorian(int julianday);

Преобразование дневного Юлианcкого счета в Грегорианскую в формате "месяц/день/год"

GregorianToJD
Преобразовывает Грегорианскую дату на Дневный Юлианский cчет.

Синтаксис:
int gregoriantojd(int month, int day, int year);

Правильный дипазон для Грегорианского календаря 4714 д.э. до 9999 н.э.

Хотя это программное обеспечение может оперировать даты в обратном порядке до 4714 д.э., такое использование может быть бесполезно и не значительно. Грегорианский календарь не был учрежден до Октября 15, 1582 (или Октябрь 5, 1582 в Юлианском календаре). Некоторые страны еще очень долго не принимали его. Например, Великобритания преобразовалась в 1752, СССР в 1918 и Греции в 1923. Наиболее Европейские страны использовали Юлианский Календарь До Грегорианского.

Пример: <?php$jd = GregorianToJD(10,11,1970);echo("$jd\n");$gregorian = JDToGregorian($jd);echo("$gregorian\n");?>

JDToJulian
Преобразовывает дату Юлианского календаря на дневный Юлианский счет.

Синтаксис:
string jdtojulian(int julianday);

Преобразование дневного Юлианского счета в строку, содержащую дату Юлианского Календаря в формате "месяц/день/год".

JulianToJD
Преобразовывает дату Юлианского Календаря на дневной Юлианский счет.

Синтаксис:
int juliantojd(int month, int day, int year);

Правильный дипазон для Юлианского календаря 4713 д.э. до 9999 н.э.

Хотя это программное обеспечение может оперировать даты в обратном порядке до 4713 д.э. такое использование может быть бесполезно и не значительно. Календарь был создан в 46 д.э., но подробные не стабилизировался до по крайней мере 8 н.э., и возможно познее в 4-ом столетии. Также, начало года различно от одной культуры к другой - не все соглашаются, что Январь это первый месяц.

JDToJewish
Преобразовывает дневной Юлианский счет в Еврейский календарь.

Синтаксис:
string jdtojewish(int julianday);

JewishToJD
Преобразовывает дату в Еврейском Календаре на дневной Юлианский счет.

Синтаксис:
int jewishtojd(int month, int day, int year);

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

JDToFrench
Преобразовывает дневной Юлианский счет в Французский Республиканский календарь.

Синтаксис:
string jdtofrench(int month, int day, int year);

Преобразовывает дневной Юлианский счет в Французский Республиканский календарь.

FrenchToJD
Преобразовывает дату и Французского Республиканского календаря в дневной Юлианский счет.

Синтаксис:
int frenchtojd(int month, int day, int year);

Эта программа преобразовывают даты в начиная с 1 до 14 (Грегорианские даты 22 Сентября 1792 до 22 1806 Сентября). Это покрывает тот период когда календарь использовался.

JDMonthName
Возвращает название месяца.

Синтаксис:
string jdmonthname(int julianday, int mode);

Возвращает строку с названием месяца. main сообщает функции, в какой календарь нужно преобразовать дневнрй Юлианский счет на, и какой тип месячных имен должен быть возвращен.
Календарные способы

0 Грегорианский - apreviated
1 Грегорианский
2 Юлианский - apreviated
3 Юлианский
4 Еврейский
5 Французский Республиканский

JDDayOfWeek
Возвращает день недели.

Синтаксис:
mixed jddayofweek(int julianday, int mode);

Возвращает день недели. Может возвратить строку(string) или int в зависимости от способа(mode).
Календарные недельные пути

Способ Значение
0 возвращает дневной номер как int (0=воскресенье, 1=понедельник, и т.п.)
1 возврат string содержание дня недели (английское-грегорианское)
2 возвращает string содержа abreviated дени недели (английский-грегорианский)

 























Открытие файла

fopen
Открывает файл и привязывает его к дескриптору.

Синтаксис:
int fopen(string $filename, string $mode, bool $use_include_path=false)

Открывает файл с именем $filename в режиме $mode и возвращает дескриптор открытого файла. Если операция "провалилась", то функция возвращает false. Необязательный параметр use_include_path говорит о том, что, если задано относительное имя файла, его следует искать также и всписке путей, используемом инструкциями include и require. Обычно этот параметр не используют.

Параметр $mode может принимать следующие значения:

r

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

r+

- Файл открывается одновременно на чтение и запись. Указатель текущей позиции устанавливается на ее первый байт. Если файла не существует, возвращает false. Если в момент записи указатель файла установлен где-то в середине файла, то данные запишутся прямо поверх уже имеющихся, а не раздвинут их, при необходимости увеличив размер файла.

w

- Создает новый пустой файл. Если на момент вызова уже был файл с таким именем, то он предварительно уничтожается. В случае неверно заданного имени файла вызов "проваливается".

w+

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

a

- Открывает существующий файл в режиме записи, и при этом сдвигает указатель текузей позиции за последний байт файла. Как водится, вызов неуспешен в случае отсутствия файла.

a+

- Открывает файл в режиме чтения и записи, указатель файла устанавливается на конец файла, при этом содержимое файла не уничтожается. Отличается от a тем, что если файла изначально не существовало, то он создается. Этот режим полезен, если вам нужно что-то дописать в файл, но вы не знаете, создан ли уже такой файл.

Но это еще не полное описание параметра $mode. Дело в том, что в конце любой из строк r,w,a,r+,w+ и a+ может находиться еще один необязательный символ - b или t. Если указан b (или не указан вообще никакой), то файл открывается в режиме бинарного чтения/записи. Если же это t, то для файла устанавливается режим трансляции символа перевода строки, т.е. он воспринимается как текстовой.

tmpfile
Создает новый временный файл с уникальным именем и открывает его на чтение и запись.

Синтаксис:
int tmpfile()

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

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

 





Закрытие файла

fclose
Закрывает файл, открытый предварительно функцией fopen().

Синтаксис:
int fclose(int $fp)

Возвращает false, если файл закрыть не удалось (например, что-то с ним случилось или же разорвалась связь с удаленным хостом). В противном случае возвращает значение "истина".

Всегда нужно закрывать FTP- и HTTP-соединения, потому что в противном случае "беспризорный" файл приведет к неоправданному простою канала и излишней загрузке сервера. Кроме того, успешно закрыв соединение, вы будете уверены в том, что все данные были доставлены без ошибок.

 



Чтение и запись

fread
Читает из открытого файла определенное количество символов.

Синтаксис:
string fread(int $f, int $numbytes)

Читает из файла $f $numbytes символов и возвращает строку этих символов. После чтения указатель файла продвигается к следующему после прочитанного блока позициям. Если $numbytes больше, чем можно прочитать из файла, возвращается то, что удалось считать. Этот прием можно использовать, если вам нужно считать в строку файл целиком. Для этого просто задайте в $numbytes очень большое число. Но если вы заботитесь об экономии памяти в системе, так поступать не рекомендуется.

fwrite
Запись в файл.

Синтаксис:
int fwrite(int $f, string $str)

Записывает в файл $f все содержимое строки $str. Эта функция составляет пару для fread(), действуя "в обратном направлении".

При работе с текстовыми файлами (то есть когда указан символ t в режиме открытия файла) все \n авоматически преобразуются в тот разделитель строк, который принят в вашей операционной системе.

fgets
Читает из файла одну строку, заканчивающуюся символом новой строки \n.

Синтаксис:
string fgets(int $f, int $length)

Этот символ также считывается и включается в результат. Если строка в файле занимает больше $length-1 байтов, то возвращаются только ее $length-1 символов. Функция полезна, если вы открыли файл и хотите "пройтись" по всем ее строкам. Однако даже в этом случае (и быстрее) будет воспользоваться функцией File(). Стоит также заметить, что эта функция (как и функция fread()) в случае текстового режима в Windows заботиться о преобразовании пар \r\n в один символ \n.

fputs
Полный аналог fwrite().

Синтаксис:
int fputs(int $f, string $str)

fgetcsv
Функция для работы с одним из форматов файлов, в котором может сохранять данные Excel.

Синтаксис:
list fgetcsv(int $f, int $length, char $delim=",")

Функция читает строку из файла, заданного дескриптором $f, и разбивает ее по символу $delim. Параметр $delim должен обязательно быть строкой из одного символа, в противном случае принимается во внимание только первый символ этой строки. Функция возвращает получившийся список или false, если строки кончились. Параметр $length задает максимальную длину строки точно так же, как это делается в fgets(). Пустые строки в файле не игнорируются, а возвращаются как список из одного элемента - пустой строки.

Пример: $f=fopen("file.csv","r") or die("Ошибка");for($i=0; $data=fgetscsv($f, 1000, ";"); $i++) { $num = count($data); if($num==1 && $data[0]==="") continue; echo "<h3>Строка номер $i ($num полей):</h3>"; for($c=0; $c<$num; $c++) print "[$c]: $data[$c]<br>";}fclose($f);

 












Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: