分享几个实用的PHP函数

查看原文:http://www.hellonet8.com/1124.html

以下是博主在其他朋友那看到的几个php函数,和大家一起分享。谢谢IT不倒翁的无私奉献。
<?php

function v($k, $defalut = ”) {
return isset($_REQUEST[$k]) ? $_REQUEST[$k] : $defalut;
}


function get($k, $defalut = ”) {
return isset($_GET[$k]) ? $_GET[$k] : $defalut;
}


function post($k, $defalut = ”) {
return isset($_POST[$k]) ? $_POST[$k] : $defalut;
}


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;
}


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;
}


function real_strlen($str) {
$charset = mb_detect_encoding($str);
return mb_strlen($str, $charset);
}


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;
}


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;
}


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;
}


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;
}


function ch_json_encode($data) {

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);
}


function check_input($value) {
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
if (!is_numeric($value)) {
$value = “‘” . wphp_escape($value) . “‘”;
}
return $value;
}


function wphp_escape($str) {
$search  = array(
“\\“,
“\0“,
“\n“,
“\r“,
“\x1a“,
“‘”,
‘”‘
);
$replace = array(
“\\\\“,
“\\0″,
“\\n”,
“\\r”,
“\Z”,
“\’”,
‘\”‘
);
return str_replace($search, $replace, $str);
}


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;
}


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

function query_string_delete($url, $name) {
$seperation = ‘&’;
$url = preg_replace(“/[?|&]$name=[^&]*/”, ”, $url);

//找出第一个&,第一个?的位置,若?不存在(或者问号位于后面),将第一个&替换成?
$str_and = strpos($url, $seperation);
$str_q = strpos($url, ‘?’);
if (false === $str_q || $str_q > $str_and) {
$url = preg_replace(“/(^[^$seperation]*)&(.*)$/”, ‘${1}?${2}’, $url);
}
return $url;
}


function query_string_replace($url, $name, $replacement) {
$seperation = ‘&’;
$url = preg_replace(“/([?|&]$name=)[^&]*/”, ‘${1}’.$replacement, $url);
return $url;
}

原文链接:http://yungbo.com/php/wphp_usefull_php_functions.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值