在日常开发中PHP用的较多,很多时候有一些小的脚本要做,并不是什么大的项目,那么有一些脚手架的函数这么多年来发现常用的就那么几个,这里整理下方便共享
function curl_get($url, array $get = [], array $options = array())
{
$defaults = array(
CURLOPT_URL => $url . (strpos($url, '?') === FALSE ? '?' : '') . http_build_query($get),
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_TIMEOUT => 4
);
$ch = curl_init();
curl_setopt_array($ch, ($options + $defaults));
if (!$result = curl_exec($ch)) {
trigger_error(curl_error($ch));
}
curl_close($ch);
return $result;
}
function curl_post($url, $post = NULL, array $options = array())
{
if (is_array($post)) { // 有可能json 传输 不是key=>value 形式
$postData = http_build_query($post);
} else {
$postData = $post;
}
$defaults = array(
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_URL => $url,
CURLOPT_FRESH_CONNECT => 1,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_FORBID_REUSE => 1,
CURLOPT_TIMEOUT => 4,
CURLOPT_POSTFIELDS => $postData
);
$ch = curl_init();
curl_setopt_array($ch, ($options + $defaults));
if (!$result = curl_exec($ch)) {
trigger_error(curl_error($ch));
}
curl_close($ch);
return $result;
}
如果需要额外的OPTION可以参考下面或者官方文档
$options = [
CURLOPT_COOKIE => 'uin=' . $sOpenId . ';skey=' . $_COOKIE["skey"],
CURLOPT_HTTPHEADER => array('Host: info.gamecenter.qq.com')
];
$back = curl_get($url, $data, $options);
$param = array(
"param1" => "1",
"param2" => "2",
"data2" => array(
"area2" => 4
)
);
$post_str = json_encode($param) . "\0";
$host = '123.123.123.211';
$port = '80';
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or amsOutPut(-1, "Could not create socket\n");
$connection = socket_connect($socket, $host, $port) or amsOutPut(-1, "Could not connet server\n");
socket_write($socket, $post_str) or amsOutPut(-1, "Write failed\n");
$buff = socket_read($socket, 1024);
socket_close($socket);
if ($buff === false) {
die(-1, "Sys Error \n");
}
echo $buff;
function getClientIp()
{
$unknown = 'unknown';
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], $unknown)) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], $unknown)) {
$ip = $_SERVER['REMOTE_ADDR'];
}
if (false !== strpos($ip, ',')) {
$ips = explode(',', $ip);
$ip = reset($ips);
}
return $ip;
}
function GBKtoUTF8($str)
{
if (is_array($str)) {
foreach ($str as &$value) {
$value = GBKtoUTF8($value);
}
return $str;
} elseif (is_string($str) && mb_detect_encoding($str, 'UTF-8', true) === false) {
$str = iconv("GBK", "UTF-8//IGNORE", $str);
return $str;
} else {
return $str;
}
}
function UTF8toGBK($str)
{
if (is_array($str)) {
foreach ($str as &$value) {
$value = UTF8toGBK($value);
}
return $str;
} elseif (is_string($str) && mb_detect_encoding($str, 'UTF-8', true) !== false) {
$str = iconv("UTF-8", "GBK//IGNORE", $str);
return $str;
} else {
return $str;
}
}
当然还有很多其他的函数,这里整理下常用的几个 其他的以后可以再整理
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。