好玩的php函数,几个实用的PHP函数
* 获取 post 或者 get 的值
* @param string $k
* @param string $default 默认返回值
* @return Ambigous NULL, unknown
*/
function v($k, $defalut = ”) {
return isset($_REQUEST[$k]) ? $_REQUEST[$k] : $defalut;
}
/**
* 获取 get 的值
* @param string $k
* @param string $default 默认返回值
* @return Ambigous NULL, unknown
*/
function get($k, $defalut = ”) {
return isset($_GET[$k]) ? $_GET[$k] : $defalut;
}
/**
* 获取 post 的值
* @param string $k
* @param string $default 默认返回值
* @return Ambigous NULL, unknown
*/
function post($k, $defalut = ”) {
return isset($_POST[$k]) ? $_POST[$k] : $defalut;
}
/**
* 模拟简单的 post 请求
* @param string $url
* @param string $data 类型和 QUERY_STRING 相同,即由 & 连接的字符串 a=1&b=2
* @param array $header header数组
* @return all 返回服务器返回的结果
*/
function post_data($url, $data = array(), $header = array()) {
$ch = curl_init($url);
ob_start();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_exec($ch);
$output = ob_get_contents();
ob_clean();
curl_close($ch);
return $output;
}
/**
* 将未知编码的字符串转换为期望的编码(配置文件中设置的编码)
*
* 不建议使用,尽量统一编码,明确要转码的字符原来的编码
* @deprecated
* @param string $str
* @param string $toEncoding
* @return string
*/
function convert_str($str, $toEncoding = null) {
//加此字符集列表数组,解决误将 改变 2312 识别为 utf-8 的情况
$charset_list = array(
‘ascii’,
‘gb2312′,
‘gbk’,
‘utf-8′
);
$strEncoding = mb_detect_encoding($str, $charset_list);
//如果没有提供要转码的类型,使用系统设置的编码
if (!$toEncoding)
$toEncoding = CHARSET;
if (strtolower($strEncoding) != strtolower($toEncoding)) {
$str = iconv($strEncoding, $toEncoding, $str);
}
return $str;
}
/**
* 查看字符长度
* @param unknown_type $str
*/
function real_strlen($str) {
$charset = mb_detect_encoding($str);
return mb_strlen($str, $charset);
}
/**
* 获得服务器端网址,即获取当前网址
* @param boolean $with_query_string 是否附带 query_string 部分
* @return Ambigous string, unknown
*/
function get_server_url($with_query_string = true) {
$url = ‘http://localhost’;
if (isset($_SERVER['HTTP_HOST'])) {
$url = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== ‘off’ ? ‘https’ : ‘http’;
$url .= ‘://’ . $_SERVER['HTTP_HOST'];
if ($with_query_string) {
$url .= $_SERVER['REQUEST_URI'];
} else {
$url .= $_SERVER['SCRIPT_NAME'];
}
}
return $url;
}
/**
* 获取网址跟目录
* @return string
*/
function get_server_root() {
$url = ‘http://localhost’;
if (isset($_SERVER['HTTP_HOST'])) {
$url = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== ‘off’ ? ‘https’ : ‘http’;
$url .= ‘://’ . $_SERVER['HTTP_HOST'];
$url .= dirname($_SERVER['SCRIPT_NAME']);
}
$url = rtrim($url, ‘/’) . ‘/’;
return $url;
}
/**
* 获取客户端 IP
*/
function get_ip() {
if (isset($_SERVER["HTTP_X_REAL_IP"])) {
$ip = $_SERVER["HTTP_X_REAL_IP"];
} else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
$ip = $_SERVER["HTTP_CLIENT_IP"];
} else if (isset($_SERVER["REMOTE_ADDR"])) {
$ip = $_SERVER["REMOTE_ADDR"];
} else {
$ip = “0.0.0.0″;
}
return $ip;
}
/**
* 判断 ip 是否合法(仅限于IPV4)
* @param unknown_type $ip
*/
function is_valid_ip($ip) {
$preg = ‘/^(\d|\d{2}|1\d{2}|2[0-4]\d|25[0-5])\.(\d|\d{2}|1\d{2}|2[0-4]\d|25[0-5])\.(\d|\d{2}|1\d{2}|2[0-4]\d|25[0-5])\.(\d|\d{2}|1\d{2}|2[0-4]\d|25[0-5])$/’;
$is_matched = false;
if (preg_match($preg, $ip, $m)) {
$is_matched = true;
}
return $is_matched;
}
/**
* json 编码
*
* 解决 json_encode() 不支持中文的情况
*
* @param array|object $data
* @return array|object
*/
function ch_json_encode($data) {
/**
* 将中文编码
* @param array $data
* @return string
*/
function ch_urlencode($data) {
if (is_array($data) || is_object($data)) {
foreach ($data as $k = $v) {
if (is_scalar($v)) {
if (is_array($data)) {
$data[$k] = urlencode($v);
} else if (is_object($data)) {
$data-$k = urlencode($v);
}
} else if (is_array($data)) {
$data[$k] = ch_urlencode($v); //递归调用该函数
} else if (is_object($data)) {
$data-$k = ch_urlencode($v);
}
}
}
return $data;
}
$ret = ch_urlencode($data);
$ret = json_encode($ret);
return urldecode($ret);
}
/**
* 转义特殊字符
*
* 书写mysql语句时的可先对变量进行过滤
* 此函数会自动对字符串加引号
* @param unknown_type $value
* @return string
*/
function check_input($value) {
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
if (!is_numeric($value)) {
$value = “‘” . wphp_escape($value) . “‘”;
}
return $value;
}
/**
* 转义函数,用来替代 mysql*_escape_* 函数
* @param unknown_type $str
*/
function wphp_escape($str) {
$search = array(
“\\“,
“\0“,
“\n“,
“\r“,
“\x1a“,
“‘”,
‘”‘
);
$replace = array(
“\\\\“,
“\\0″,
“\\n”,
“\\r”,
“\Z”,
“\’”,
‘\”‘
);
return str_replace($search, $replace, $str);
}
/**
* Ip 地址转为数字地址
*
* php 的 ip2long 这个函数有问题
* 133.205.0.0 == 2244804608
* @param string $ip 要转换的 ip 地址
* @return int 转换完成的数字
*/
function wphp_ip2long($ip) {
$ip_arr = explode(‘.’, $ip);
$iplong = (16777216 * intval($ip_arr[0])) + (65536 * intval($ip_arr[1])) + (256 * intval($ip_arr[2])) + intval($ip_arr[3]);
return $iplong;
}
/**
* 对字符串、对象、数组进行转码
*
* 和 iconv 参数使用方式相同
* @param string $in_charset
* @param string $out_charset
* @param array|string $data
* @return string|array
*/
function wphp_iconv($in_charset, $out_charset, $data) {
if (is_array($data) || is_object($data)) {
foreach ($data as $k = $v) {
if (is_scalar($v)) {
if (is_array($data)) {
$data[$k] = iconv($in_charset, $out_charset, $v);
} else if (is_object($data)) {
$data-$k = iconv($in_charset, $out_charset, $v);
}
} else if (is_array($data)) {
$data[$k] = wphp_iconv($in_charset, $out_charset, $v);
} else if (is_object($data)) {
$data-$k = wphp_iconv($in_charset, $out_charset, $v);
}
}
} else if (is_scalar($data)) {
$data = iconv($in_charset, $out_charset, $data);
}
return $data;
}
---------------------------------------------------------------------------------
好玩的php函数,几个实用的PHP函数相关推荐
- 10个不太为人所知的,但实用的PHP函数
10个不太为人所知的,但实用的PHP函数 您的评价: 较差 收藏该经验 阅读目录 php_check_syntax highlight_string show_source ph ...
- java lambda函数_最常用的 Java 8 中的 Lambda 函数(项目中实用笔记)
最常用的 Java 8 中的 Lambda 函数(项目中实用笔记) 简介 Java 8 中的新特性,虽然现在都出到了Java14版本,不过在日常的开发过程中,8的版本是足够使用了,再说现在的8以上的版 ...
- php常用操作数组函数,PHP自带的几个实用的数组函数
PHP自带的几个实用的数组函数 php之所以被认为是快速开发的好工具,有一个原因就是他内置了大量的实用函数,今天我们介绍几个PHP自带的数组函数.在开发时可以使用这些函数,不仅可以提高编程的效率,还可 ...
- Python限制函数执行时间的实用解决方案
大家好,我是herosunly.985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用.曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名.拥有多项发明专利.对机器学 ...
- oracle 计算平方,次方,一个实用的Excel函数,Power函数公式完成平方、立方及N次方运算...
一个实用的Excel函数,Power函数公式完成平方.立方及N次方运算 今天我们来学习如何利用Excel函数,进行数据的平方.立方等数据运算.相信对于许多同学来讲,这样的数据运算一般都是用电脑计算器来 ...
- python函数装饰函数_Python精进-装饰器与函数对象
本文为<爬着学Python>系列第四篇文章. 从本篇开始,本专栏在顺序更新的基础上,会有不规则的更新. 在Python的学习与运用中,我们迟早会遇到装饰器,这个概念对于初识装饰器的新手来说 ...
- 自定义函数_Access中的WorkDate自定义函数
Access专家课堂两周年庆,视频课程.培训班.企业版等5~8折优惠,->点此了解详情 在Access中使用类似EXCEL中的WorkDate函数. 在Excel中有workdate函数,在AC ...
- python装饰器函数-Python精进-装饰器与函数对象
本文为<爬着学Python>系列第四篇文章. 从本篇开始,本专栏在顺序更新的基础上,会有不规则的更新. 在Python的学习与运用中,我们迟早会遇到装饰器,这个概念对于初识装饰器的新手来说 ...
- python定义函数的命令_Python入门 | 定义函数
自用复习备忘总结. 一些定义函数:一段用来封装任务的代码 封装:用一个简单的命令执行一系列步骤的方式 3. 对象python使用对象来存储数据. 构造任何类型的值都是一个对象. 所有对象都具有三个特性 ...
最新文章
- micro-job 0.0.2 发布,分布式任务调度框架
- 通过IFeatureClass 接口查询 IWorkspace, 查询通配符
- SAP UI5 component.js createContent
- logging记录日志
- 用计算机玩游戏最简单的方法,如何制作电脑简易命令小游戏
- 我的这套VuePress主题你熟悉吧
- flex 瀑布流 (多列样式column布局内容被截断)
- android:descendantFocusability用法
- 中国摊铺和混凝土浇筑设备市场趋势报告、技术动态创新及市场预测
- python基础语法、数据结构、字符编码、文件处理 练习题
- 资源管理器和计算机的功能基本相同吗,“资源管理器”和“计算机”的功能基本相同...
- [Python爬虫案例]西刺免费代理IP
- JS--历史搜索记录的实现
- Java POI实现pptpptx转换为pdf文件
- 推荐花椒直播服务端的 4 个开源项目
- idea向mysql上传中文信息乱码问号问题
- Java实现 蓝桥杯 历届试题 城市建设
- 从源码看std::weak_ptr
- 北京大学 计算机辅助翻译专业,【最新权威版】2019年北京大学计算机辅助翻译CAT考研经验分享...
- 【Godot游戏开发案例《FlappyBird》小练习 】
热门文章
- python怎么调用另一个文件的函数_python如何调用另一个py文件的所有函数?
- 机器学习第一篇:开篇
- SAP Fiori 的 UI 新主题 Horizon
- SAP 电商云 Spartacus UI 和 SmartEdit 本地测试环境
- Angular library 学习笔记
- SAP Spartacus B2B OrgUnit 和 OrgUser 的路由映射差异比较
- 一个讨论:SAP项目实施的顾问,需要花时间去调试代码了解技术细节吗
- SAP ABAP XSLT extract custom style
- SAP CRM WebClient UI检查当前页面是否支持Delta handling的代码
- SpringBoot里slf4j日志功能的默认实现