Php: полезные функции

11/12/2022

Запись массива в файл - логирование:

static public function writeToLog($arr)
{
        foreach ($arr as $k => $v) {
            if (is_array($v)) {
                $v = json_encode($v);
            }
            $arr[$k] = $k.' => '.$v."\r\n";
        }
        file_put_contents(
            self::getLogFilePath(),
            join('', $arr),
            FILE_APPEND
        );
 }

public static function getLogFilePath(): string
{
        return $_SERVER['DOCUMENT_ROOT'].'/bitrix/webp_log.txt';
}

Проверка - начинается ли строка подстрокой:

/**
 *   функция определяет начинается ли строка с подстроки
 *
 *   @param string $haystack - строка
 *   @param string $needle - подстрока
 *   @return bool
 *
 */
function startsWith($haystack, $needle)
{
	$length = strlen($needle);
	return (substr($haystack, 0, $length) === $needle);
}

Проверка - заканчивается ли строка подстрокой:

/**
 *   функция определяет заканчивается ли строка подстрокой
 *
 *   @param string $haystack - строка
 *   @param string $needle - подстрока
 *   @return bool
 *
 */
function endsWith($haystack, $needle)
{
	$length = strlen($needle);
	if ($length == 0) {
		return true;
	}

	$start  = $length * -1; 
	return (substr($haystack, $start) === $needle);
}

Вывод даты:


function show_date()
{
	$day=date('d');
	$mounth=date('m');
	$year=date('Y');
	$data=array('01'=>'января','02'=>'февраля','03'=>'марта','04'=>'апреля','05'=>'мая','06'=>'июня',
	'07'=>'июля', '08'=>'августа','09'=>'сентября','10'=>'октября','11'=>'ноября','12'=>'декабря');
	foreach ($data as $key=>$value)
	{
		if ($key==$mounth) echo "Сегодня $day $value $year года";
	}
}

Отправка http заголовка для 404 ошибки:


 if (strpos(php_sapi_name(),'cgi') !== false)
    header('Status: 404 Not Found');
else
    header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found');

Проверка email на корректность:

if (!preg_match("/^[a-zA-Z0-9\-\._]+@[-a-zA-Z0-9\-]+\.[-a-zA-Z0-9\-\.]+$/i", $user_email)) 
{
	echo "Неверный e-mail!";
}

Вывести список файлов, подключенных функциями include, require

$files = get_included_files();
		
foreach ($files as $key => $file) {
	echo "
$key $file
"; }

Запись текста в файл

$str = 'text';
$file = fopen ("file.txt","a+");
if ( !$file ) {
	echo("Ошибка открытия файла");
} else {
	fputs ( $file, $str);
}
fclose ($file);

Определение расширения файла:

function getExtension1($filename) {
	return end(explode(".", $filename));
}

Теги - Php