PHP共通関数集(1)_PHPチュートリアル
/**
* addslashes によって処理された文字列または配列を返します
* @param $string 処理される文字列または配列
* @return 混合
*/
関数 new_addslashes($string){
if(!is_array($string)) returnaddslashes($string);
foreach($string as $key => $val) $string[$key] = new_addslashes($val);
$string を返します;
}
/**
* ストリップスラッシュによって処理された文字列または配列を返します
* @param $string 処理される文字列または配列
* @return 混合
*/
関数 new_stripslashes($string) {
if(!is_array($string)) return ストリップスラッシュ($string);
foreach($string as $key => $val) $string[$key] = new_stripslashes($val);
$string を返します;
}
/**
* addslashe によって処理された文字列または配列を返します
* @param $obj 処理される文字列または配列 www.2cto.com
* @return 混合
*/
関数 new_html_special_chars($string) {
if(!is_array($string)) return htmlspecialchars($string);
foreach($string as $key => $val) $string[$key] = new_html_special_chars($val);
$string を返します;
}
/**
* セキュリティフィルター機能
*
* @param $string
* @戻り文字列
*/
関数safe_replace($string) {
$string = str_replace('%20','',$string);
$string = str_replace('%27','',$string);
$string = str_replace('%2527','',$string);
$string = str_replace('*','',$string);
$string = str_replace('"','"',$string);
$string = str_replace("'",'',$string);
$string = str_replace('"','',$string);
$string = str_replace(';','',$string);
$string = str_replace('<','<',$string);
$string = str_replace('>','>',$string);
$string = str_replace("{",'',$string);
$string = str_replace('}','',$string);
$string を返します;
}
/**
* 0 ~ 28 の ASCII コードで制御文字をフィルターします
* @return 文字列
*/
関数trim_unsafe_control_chars($str) {
$rule = '/[' 。 chr(1) 。 「-」。 chr(8) 。 chr(11) 。 「-」。 chr(12) 。 chr(14) 。 「-」。 chr(31) 。 ']*/';
return str_replace ( chr ( 0 ), '', preg_replace ( $rule, '', $str ) );
}
/**
* テキストフィールドの内容を書式設定します
*
* @param $string テキストフィールドの内容
* @戻り文字列
*/
関数トリムテキストエリア($string) {
$string = nl2br ( str_replace ( ' ', ' ', $string ) );
$string を返します;
}
/**
* テキストをjs出力に適した文字列にフォーマットします
* @param string $string 処理対象の文字列
* @param intval $isjs 文字列整形を行うかどうか、デフォルトは実行
* @return string 処理された文字列
*/
関数 format_js($string, $isjs = 1)
{
$string = addedlashes(str_replace(array("r", "n"), array('', ''), $string));
$isjsを返しますか? 'document.write("'.$string.'");' : $string;
}
/**
* JavaScript コードタグをエスケープします
*
* @param $str
* @return 混合
*/
関数トリム_スクリプト($str) {
$str = preg_replace ( '/<([/]?)script([^>]*?)>/si', '<\1script\2>', $str );
$str = preg_replace ( '/<([/]?)iframe([^>]*?)>/si', '<\1iframe\2>', $str );
$str = preg_replace ( '/<([/]?)frame([^>]*?)>/si', '<\1frame\2>', $str );
$str = preg_replace ( '/]]>/si', ']] >', $str );
$str;
を返します
}
/**
* 現在のページの完全な URL アドレスを取得します
*/
関数 get_url() {
$sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://';
$php_self = $_SERVER['PHP_SELF'] ? safe_replace($_SERVER['PHP_SELF']) :safe_replace($_SERVER['SCRIPT_NAME']);
$path_info = isset($_SERVER['PATH_INFO']) ? safe_replace($_SERVER['PATH_INFO']) : '';
$relate_url = isset($_SERVER['REQUEST_URI']) ? safe_replace($_SERVER['REQUEST_URI']) : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.safe_replace($_SERVER['QUERY_STRING']) : $path_info);
return $sys_protocal.(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '').$relate_url;
}
/**
* 文字インターセプトは UTF8/GBK をサポートします
* @param $string
* @param $length
* @param $dot
*/
関数 str_cut($string, $length, $dot = '...') {
$strlen = strlen($string);
if($strlen
$string = str_replace(array(' ',' ', '&', '"', ''', '"', '"', '—', '<', '>', '·' 、'…')、array('∵'、' '、'&'、'"'、''"、'"'、'"'、'—'、'<'、'>'、' ·', '…'), $string);
$strcut = '';
if(strto lower(CHARSET) == 'utf-8') {
$length = intval($length-strlen($dot)-$length/3);
$n = $tn = $noc = 0;
while($n < strlen($string)) {
$t = ord($string[$n]);
if($t == 9 || $t == 10 || (32
$tn = 1; $n++; $noc++;
elseif(194
$tn = 2; $n += 2; $noc += 2;
elseif(224
$tn = 3; $n += 3; $noc += 2;
elseif(240
$tn = 4; $n += 4; $noc += 2;
elseif(248
$tn = 5; $n += 5; $noc += 2;
elseif($t == 252 || $t == 253) {
$tn = 6; $n += 6; $noc += 2;
} その他 {
$n++;
}
if($noc >= $length) {
休憩;
}
}
if($noc > $length) {
$n -= $tn;
}
$strcut = substr($string, 0, $n);
$strcut = str_replace(array('∵', '&', '"', "'", '"', '"', '—', '<', '>', '・', ' …')、array(' '、'&'、'"'、'''、'"'、'"'、'—'、'<'、'>'、'・'、'…' )、$strcut);
} その他 {
$dotlen = strlen($dot);
$maxi = $length - $dotlen - 1;
$current_str = '';
$search_arr = array('&',' ', '"', "'", '"', '"', '—', '<', '>', '·', '…', '∵');
$replace_arr = array('&',' ', '"', ''', '"', '”', '—', '<', '>', '·', '…', ' ');
$search_flip = array_flip($search_arr);
for ($i = 0; $i
$current_str = ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
if (in_array($current_str, $search_arr)) {
$key = $search_flip[$current_str];
$current_str = str_replace($search_arr[$key], $replace_arr[$key], $current_str);
}
$strcut .= $current_str;
}
}
$strcut.$dot を返します;
}
/**
* リクエストIPを取得
*
* @return IP アドレス
*/
関数 ip() {
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$ip = getenv('HTTP_CLIENT_IP');
elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$ip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$ip = $_SERVER['REMOTE_ADDR'];
}
return preg_match ( '/[d.]{7,15}/', $ip, $matches ) ? $matches [0] : '';
}
関数 get_cost_time() {
$microtime = マイクロタイム ( TRUE );
$microtime を返す - SYS_START_TIME;
}
/**
*プログラム実行時間
*
* @return int 単位 ms
*/
関数execute_time() {
$stime = 爆発 ( ' ', SYS_START_TIME );
$etime = 爆発 ( ' ', マイクロタイム () );
returnnumber_format (($etime [1] + $etime [0] - $stime [1] - $stime [0]), 6 );
}
/**
* 生産随机字符串
*
* @param int $length 输出长度
* @param string $chars 可、默认:0123456789
* @return string 文字串
*/
関数ランダム($length, $chars = '0123456789') {
$ハッシュ = '';
$max = strlen($chars) - 1;
for($i = 0; $i
$hash .= $chars[mt_rand(0, $max)];
}
$ハッシュを返します;
}
/**
* 文字列を配列に変換します
*
* @param string $data string
* @return array データが空の場合は、空の配列を返します
*/
関数 string2array($data) {
if($data == '') return array();
eval("$array = $data;");
$array を返します;
}
/**
* 配列を文字列に変換します
*
* @param 配列 $data 配列
* @param bool $isformdata 0の場合、new_stripslashes処理は使用されません、オプションのパラメータ、デフォルトは1です
* @return string データが空の場合は空を返します
*/
関数 array2string($data, $isformdata = 1) {
if($data == '') return '';
if($isformdata) $data = new_stripslashes($data);
return addedlashes(var_export($data, TRUE));
}
/**
* バイト数を他の単位に変換します
*
*
* @param string $filesize バイトサイズ
* @return string 戻りサイズ
*/
関数 sizecount($filesize) {
if ($filesize >= 1073741824) {
$filesize =round($filesize / 1073741824 * 100) / 100 .' GB';
elseif ($filesize >= 1048576) {
$filesize =round($filesize / 1048576 * 100) / 100 .' MB';
elseif($filesize >= 1024) {
$filesize =round($filesize / 1024 * 100) / 100 。 「KB」;
} その他 {
$filesize = $filesize.'バイト';
}
$filesize を返します;
}
/**
* 文字列の暗号化および復号化関数
*
*
* @param string $txt 文字列
* @param string $operation ENCODE は暗号化、DECODE は復号化、オプションのパラメーター、デフォルトは ENCODE、
* @param string $key キー: 数字、文字、アンダースコア
* @戻り文字列
*/
関数 sys_auth($txt, $operation = 'ENCODE', $key = '') {
$key = $key ? $key : pc_base::load_config('system', 'auth_key');
$txt = $operation == 'エンコード' ? (文字列)$txt :base64_decode($txt);
$len = strlen($key);
$code = '';
for($i=0; $i
$code .= $txt[$i] ^ $key[$k];
}
$コード = $オペレーション == 'デコード' ? $code :base64_encode($code);
$コードを返します;
}
/**
* 语言文处理
*
* @param string $ language 标表示符
* @param array $pars エスケープ配列、二次元配列、'key1'=>'value1','key2'=>'value2',
* @param string $modules 複数のモジュールは半角カンマで区切ります(例: member, guestbook
)
* @return string 言語文字
*/
function L($ language = 'no_ language',$pars = array(), $modules = '') {
static $LANG = array();
static $LANG_MODULES = array();
static $lang = '';
If(定義済み('IN_ADMIN')) {
$lang = SYS_STYLE : 'zh-cn';
} その他 {
$lang = pc_base::load_config('system','lang');
}
If(!$LANG) {
require_once PC_PATH.'langages'.DIRECTORY_SEPARATOR.$lang.DIRECTORY_SEPARATOR.'system.lang.php';
If(define('IN_ADMIN')) require_once PC_PATH.'langages'.DIRECTORY_SEPARATOR.$lang.DIRECTORY_SEPARATOR.'system_menu.lang.php';
if(file_exists(PC_PATH.'言語'.DIRECTORY_SEPARATOR.$lang.DIRECTORY_SEPARATOR.ROUTE_M.'.lang.php')) require PC_PATH.'言語'.DIRECTORY_SEPARATOR.$lang.DIRECTORY_SEPARATOR.ROUTE_M.'.lang.php';
}
If(!emptyempty($modules)) {
$modules =explode(',',$modules);
foreach($modules AS $m) {
If(!isset($LANG_MODULES[$m])) には PC_PATH.'langages'.DIRECTORY_SEPARATOR.$lang.DIRECTORY_SEPARATOR.$m.'.lang.php';
が必要です
}
}
If(!array_key_exists($ language,$LANG)) {
return $LANG['no_ language'].'['.$ language.']';
} その他 {
$言語 = $LANG[$言語];
if($pars) {
foreach($pars AS $_k=>$_v) {
$ language = str_replace('{'.$_k.'}',$_v,$ language);
}
}
return $ language;
}
}
/**
* テンプレート通話
*
* @param $module
* @param $template
* @param $stag
* @return 不明なタイプ
*/
関数テンプレート($module = 'コンテンツ', $template = 'インデックス', $style = '') {
If(strpos($module, 'plugin/')!== false) {
$plugin = str_replace('plugin/', '', $module);
return p_template($plugin, $template,$style);
}
$module = str_replace('/', DIRECTORY_SEPARATOR, $module);
If(!emptyempty($style) && preg_match('/([a-z0-9-_]+)/is',$style)) {
elseif (emptyempty($style) && !define('STYLE')) {
If(定義済み('SITEID')) {
$siteid = サイトID;
} else {
$siteid = param::get_cookie('siteid');
}
if (!$siteid) $siteid = 1;
$sitelist = getcache('sitelist','commons');
if(!emptyempty($siteid)) {
$style = $sitelist[$siteid]['default_style'];
}
elseif (emptyempty($style) && 定義された('STYLE')) {
$style = スタイル;
} その他 {
$style = 'デフォルト';
}
if(!$style) $style = 'デフォルト';
$template_cache = pc_base::load_sys_class('template_cache');
$compiledtplfile = PHPCMS_PATH.'caches'.DIRECTORY_SEPARATOR.'caches_template'.DIRECTORY_SEPARATOR.$style.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.php';
if(file_exists(PC_PATH.'templates'.DIRECTORY_SEPARATOR.$style.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.html')) {
if(!file_exists($compiledtplfile) || (@filemtime(PC_PATH.'templates'.DIRECTORY_SEPARATOR.$style.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.html') > @filemtime($compiledtplfile))) {
$template_cache->template_compile($module, $template, $style);
}
} その他 {
$compiledtplfile = PHPCMS_PATH.'caches'.DIRECTORY_SEPARATOR.'caches_template'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.php';
if(!file_exists($compiledtplfile) || (file_exists(PC_PATH.'templates'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.html') && filemtime(PC_PATH.'templates'.DIRECTORY_SEPARATOR .'default'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.html') > filemtime($compiledtplfile))) {
$template_cache->template_compile($module, $template, 'default');
elseif (!file_exists(PC_PATH.'templates'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.html')) {
showmessage('テンプレートが存在しません。'.DIRECTORY_SEPARATOR.$style.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.html');
}
}
$compiledtplfile を返す;
}
/**
* カスタムエラーを出力
*
* @param $errno エラー番号
* @param $errstr エラーの説明
* @param $errfile エラーファイルアドレス
* @param $errline エラー行番号
* @return 文字列エラーメッセージ
*/
function my_error_handler($errno, $errstr, $errfile, $errline) {
if($errno==8) return '';
$errfile = str_replace(PHPCMS_PATH,'',$errfile);
if(pc_base::load_config('システム','エラーログ')) {
error_log(''.date('m-d H:i:s',SYS_TIME).' | '.$errno.' | '.str_pad($errstr,30).' | ' .$errfile.' | '.$errline."rn", 3, CACHE_PATH.'error_log.php');
} その他 {
$str = '
Need Help?
エコー $str;
}
}
/**
* プロンプト情報ページがジャンプします。ジャンプ アドレスが配列で渡されると、ページではユーザーが複数のアドレスを選択するよう求められます。デフォルトのジャンプ アドレスは配列の最初の値で、時間は 5 秒です。
* showmessage('ログイン成功', array('デフォルトのジャンプアドレス'=>'http://www.phpcms.cn'));
* @param string $msg プロンプトメッセージ
* @parammixed(string/array) $url_forwardジャンプアドレス
* @param int $ms ジャンプ待ち時間
*/
function showmessage($msg, $url_forward = 'goback', $ms = 1250, $dialog = '', $returnjs = '') {
if(定義('IN_ADMIN')) {
include(admin::admin_tpl('showmessage', 'admin'));
} その他 {
include(template('コンテンツ', 'メッセージ'));
}
終了します;
}
/**
* 特定の文字列に文字が存在するかどうかをクエリします
*
* @param $haystack 文字列
* @param $needle 検索する文字
* @return bool
*/
関数 str_exists($haystack, $needle)
{
return !(strpos($haystack, $needle) === FALSE);
}
/**
* ファイル拡張子を取得します
*
* @param $filename ファイル名
* @return 拡張子
*/
関数 fileext($filename) {
return strto lower(trim(substr(strrchr($filename, '.'), 1, 10)));
}
/**
* テンプレートタグキャッシュをロード
* @param string $name キャッシュ名
* @param integer $times キャッシュ時間
*/
関数 tpl_cache($name,$times = 0) {
$filepath = 'tpl_data';
$info = getcacheinfo($name, $filepath);
if (SYS_TIME - $info['filemtime'] >= $times) {
false を返します;
} その他 {
return getcache($name,$filepath);
}
}
/**
* 書き込みキャッシュ、デフォルトはファイル キャッシュ、キャッシュ設定はロードされません。
* @param $name キャッシュ名
* @param $data キャッシュデータ
* @param $filepath データパス (モジュール名) キャッシュ/cache_$filepath/
* @param $type キャッシュ タイプ [file,memcache,apc]
* @param $config 設定名
* @param $timeout 有効期限
*/
function setcache($name, $data, $filepath='', $type='file', $config='', $timeout=0) {
pc_base::load_sys_class('cache_factory','',0);
if($config) {
$cacheconfig = pc_base::load_config('cache');
$cache =cache_factory::get_instance($cacheconfig)->get_cache($config);
} その他 {
$cache =cache_factory::get_instance()->get_cache($type);
}
return $cache->set($name, $data, $timeout, '', $filepath);
}
/**
* 読み取りキャッシュ、デフォルトはファイル キャッシュ、キャッシュ設定はロードされません。
* @param string $name キャッシュ名
* @param $filepath データパス (モジュール名) キャッシュ/cache_$filepath/
* @param string $config 設定名
*/
function getcache($name, $filepath='', $type='file', $config='') {
pc_base::load_sys_class('cache_factory','',0);
if($config) {
$cacheconfig = pc_base::load_config('cache');
$cache =cache_factory::get_instance($cacheconfig)->get_cache($config);
} その他 {
$cache =cache_factory::get_instance()->get_cache($type);
}
return $cache->get($name, '', '', $filepath);
}
/**
* キャッシュを削除します。デフォルトはファイル キャッシュであり、キャッシュ構成はロードされません。
* @param $name キャッシュ名
* @param $filepath データパス (モジュール名) キャッシュ/cache_$filepath/
* @param $type キャッシュ タイプ [file,memcache,apc]
* @param $config 設定名
*/
function delcache($name, $filepath='', $type='file', $config='') {
pc_base::load_sys_class('cache_factory','',0);
if($config) {
$cacheconfig = pc_base::load_config('cache');
$cache =cache_factory::get_instance($cacheconfig)->get_cache($config);
} その他 {
$cache =cache_factory::get_instance()->get_cache($type);
}
return $cache->delete($name, '', '', $filepath);
}
摘自chaojie2009の专栏

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
