/**
* 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 = 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 ( '/]*?)>/si', '', $str );
$str = preg_replace ( '/]*?)>/si', '', $str );
$str = preg_replace ( '/]*?)>/si', '', $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
$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の专栏

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

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

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

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

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ホットトピック



