目錄 php常用自定義函數類下載 php 設置字元編碼為utf-8 GB2312和utf8相互轉換 路徑格式化(替換雙斜線為單斜線) 獲取當前文件的目錄 列印輸出 api返回信息 字元串截取 方法一: 方法二: 字元串make_by_id轉成makeById 數組 字元串 對象 json格式的字元串 ...
目錄
- php常用自定義函數類下載
- php 設置字元編碼為utf-8
- GB2312和utf8相互轉換
- 路徑格式化(替換雙斜線為單斜線)
- 獲取當前文件的目錄
- 列印輸出
- api返回信息
- 字元串截取
- 字元串make_by_id轉成makeById
- 數組 字元串 對象 json格式的字元串互轉
- 強制類型轉換
- php序列化serialize與返回序列化unserialeze
- 創建日誌文件
- 返回二維數組其中一段的數據
- 獲取ip地址
- PHP限制IP訪問 只允許指定IP訪問 允許*號通配符過濾IP
- 獲取地址路徑里0到第一個\線的部分
- 獲取當前文件所在的文件路徑
- 獲取隨機字元串
- 中文字元串反轉
- 檢查目標文件夾是否存在,如果不存在則自動創建該目錄
- 預設獲得文件修改時間
- 判斷尾碼類型
- 檢查文件類型
- 獲取文件尾碼名,並判斷是否在定義的數組中
- 判斷路徑是文件還是目錄
- 計算文件或目錄位元組大小
- 接收非同步過來的get消息
- curl之get請求
- curl之post請求
- curl之post_get請求
- 判斷數組類型參數是否含有空元素值
- 判斷是否傳入必要參數
php常用自定義函數類下載
https://pan.baidu.com/s/18ZuQm5cx3ynQtQqcQgK0Vw
php 設置字元編碼為utf-8
header("Content-Type: text/html;charset=utf-8");
GB2312和utf8相互轉換
echo iconv('GB2312', 'UTF-8//IGNORE', $str); //將字元串的編碼從GB2312轉到UTF-8
//ignore的意思是忽略轉換時的錯誤,如果沒有ignore參數,所有該字元後面的字元串都無法被保存。
iconv("UTF-8","GB2312//IGNORE",$data);
print_r(iconv_get_encoding()); //得到當前頁面編碼信息
// 轉碼
function gbk($str){return iconv('utf-8','gbk',$str);}
function utf8($str){return iconv('gbk','utf-8',$str);}
路徑格式化(替換雙斜線為單斜線)
function path_formate($str){
return str_replace('\\\\','\\',$str);
}
獲取當前文件的目錄
方法一:
define('BASE_PATH',rtrim(str_replace('\\','/',__DIR__).'/'));
方法二:
define('BASE_DIR', rtrim(str_replace('\\', '/', dirname(__FILE__)),'/').'/');
列印輸出
function dump($var)
{
echo '<pre>';
print_r($var);
echo '</pre>';
}
function vp($var)
{
echo '<pre>';
var_dump($var);
echo '</pre>';
}
function dd($var)
{
echo '<pre>';
var_dump($var);
echo '</pre>';
die;
}
api返回信息
/**
* 數據返回
* @param [int] $code [結果碼 200:正常/4**數據問題/5**伺服器問題]
* @param [string] $msg [返回的提示信息]
* @param [array] $data [返回的數據]
* @return [string] [最終的json數據]
*/
public function return_msg($code, $msg = '', $data = []) {
/*********** 組合數據 ***********/
$return_data['code'] = $code;
$return_data['msg'] = $msg;
$return_data['data'] = $data;
/*********** 返回信息並終止腳本 ***********/
echo json_encode($return_data,JSON_UNESCAPED_UNICODE);
die;
}
字元串截取
方法一:
在公共的common.php中
//字元串截取並且超出顯示省略號
function subtext($text, $length)
{
if(mb_strlen($text, ‘utf8’) > $length)
return mb_substr($text,0,$length,’utf8′).’ …’;
return $text;
}
在模版中調用則:
{$tops.title | subtext=18}
方法二:
在公共的common.php中
//字元串截取
function cut_str($sourcestr,$cutlength)
{
$returnstr='';
$i=0;
$n=0;
$str_length=strlen($sourcestr);//字元串的位元組數
while (($n<$cutlength) and ($i<=$str_length))
{
$temp_str=substr($sourcestr,$i,1);
$ascnum=Ord($temp_str);//得到字元串中第$i位字元的ascii碼
if ($ascnum>=224) //如果ASCII位高與224,
{
$returnstr=$returnstr.substr($sourcestr,$i,3); //根據UTF-8編碼規範,將3個連續的字元計為單個字元
$i=$i+3; //實際Byte計為3
$n++; //字串長度計1
}
elseif ($ascnum>=192) //如果ASCII位高與192,
{
$returnstr=$returnstr.substr($sourcestr,$i,2); //根據UTF-8編碼規範,將2個連續的字元計為單個字元
$i=$i+2; //實際Byte計為2
$n++; //字串長度計1
}
elseif ($ascnum>=65 && $ascnum<=90) //如果是大寫字母,
{
$returnstr=$returnstr.substr($sourcestr,$i,1);
$i=$i+1; //實際的Byte數仍計1個
$n++; //但考慮整體美觀,大寫字母計成一個高位字元
}
else //其他情況下,包括小寫字母和半形標點符號,
{
$returnstr=$returnstr.substr($sourcestr,$i,1);
$i=$i+1; //實際的Byte數計1個
$n=$n+0.5; //小寫字母和半形標點等與半個高位字元寬...
}
}
if ($str_length>$i){
$returnstr = $returnstr . "...";//超過長度時在尾處加上省略號
}
return $returnstr;
}
在模版中調用則:
{$brand.brand_description|cut_str=###,10}
字元串make_by_id轉成makeById
function changestr($string){
if(!is_string($string)){
die('please input string.');
}
if(strpos($string,'_')){
$stringArr=explode('_',$string);
$str='';
foreach ($stringArr as $v){
$str .= ucfirst($v);
}
return $str;
}
}
數組 字元串 對象 json格式的字元串互轉
/**
* 對象 轉 數組
*
* @param object $obj 對象
* @return array
*/
function object2array(&$object) {
$object = json_decode( json_encode( $object),true);
return $object;
}
/****對象轉json數組格式的字元串*****/
function obj2arr($object) {
$json_object = json_encode($object);
echo "<pre>";
var_dump($json_object);die;
$arr = json_decode($json_object, 1);
return $arr;
}
/****json轉數組*****/
/**
* [json_to_arr description] json_to_arr 遍歷把json轉為數組
* @param [type] $jsonstr [description]
* @return boolean [description]
*/
//測試數據:$resp='{"jingdong_omnichannel_order_ship_update_responce":{"code":"0","result":"{\\"code\\":\\"400\\",\\"message\\":\\"系統異常:物流組件中為已取消狀態\\",\\"success\\":false}"}}';
function json_to_arr2($jsonstr)
{
if (is_string($jsonstr)&&is_array(json_decode($jsonstr, true))) {
$arr = json_decode($jsonstr, true);
foreach ($arr as $k => $v) {
if (is_array($v)) {
foreach ($v as $kk=>$vv){
if(is_string($vv) && is_array(json_decode($vv, true))){
$arr[$k][$kk] = json_decode($vv, true);
}
}
}
if(is_string($v)&&is_sarray(json_decode($v,true))){
$arr[$k]=json_decode($v,true);
}
}
return $arr;
} else {
die('This is not jsonString!');
}
}
/**
* 數組 轉 對象
*
* @param array $arr 數組
* @return object
*/
function array_to_object($arr) {
if (gettype($arr) != 'array') {
return;
}
foreach ($arr as $k => $v) {
if (gettype($v) == 'array' || getType($v) == 'object') {
$arr[$k] = (object)array_to_object($v);
}
}
return (object)$arr;
}
$arr = array(
'name'=>'haima',
'age'=>32,
'gender'=>'nan'
);
$a=(Object)($arr); //數組轉對象
echo '<pre>';
var_dump($a);
$jsonstring=json_encode($array,JSON_UNESCAPED_UNICODE); //對象轉json字元串 不轉義中文漢字
echo '<pre>';
var_dump($jsonstring);
$abj=json_decode($array); //json轉對象
$array=json_decode($array,true); //json轉數組
echo '<pre>';
$b=(Array)($a); //對象轉數組
var_dump($b);
強制類型轉換
/**
* 強制類型轉換
* @param string $data
* @param string $type
* @return mixed
*/
private function typeCast(&$data, $type)
{
switch (strtolower($type)) {
// 數組
case 'a':
$data = (array) $data;
break;
// 數字
case 'd':
$data = (int) $data;
break;
// 浮點
case 'f':
$data = (float) $data;
break;
// 布爾
case 'b':
$data = (boolean) $data;
break;
// 字元串
case 's':
default:
if (is_scalar($data)) {
$data = (string) $data;
} else {
throw new \InvalidArgumentException('variable type error:' . gettype($data));
}
}
}
php序列化serialize與返回序列化unserialeze
serialize() 把變數和它們的值編碼成文本
unserialize() 恢複原先變數
創建日誌文件
- 方法一(適合臨時用):
//數組/字元串都可以
file_put_contents( 'log.log', date('Y-m-d H:i:s',time()) .' ' . var_export($_REQUEST,true) . "\r\n", FILE_APPEND);
- 方法二:
例: /www.wdmcake.com/data/log/日期/$file文件名
/**
*$str array/str 要寫入的內容
*$dir str 日期文件夾裡面的新建的文件夾名字 例如 /www.wdmcake.com/data/log/201806/sms_apiaas
*$file string 文件的名字 例:send_log_20180628.log
*/
function wdmlog($str,$dir='log',$file='log')
{
if (!file_exists(ROOT_PATH . 'data/log/' . date('Ym'). '/' . $dir))
{
make_dir(ROOT_PATH . 'data/log/' . date('Ym'). '/' . $dir);
}
$str = is_array($str) ? var_export($str,true):$str;
file_put_contents(ROOT_PATH . 'data/log/' . date('Ym'). '/' . $dir.'/' . $file .'_' . date('Ymd') . '.log', local_date('Y-m-d H:i:s') .' ' . $str . "\r\n", FILE_APPEND);
}
- 方法三:
function create_log($data,$merchant,$agency,$file='')
{
if(empty($merchant)) die("商戶code不可為空");
if(empty($agency)) die("平臺code不可為空");
$file_path = ROOT_PATH . 'logdata/'.$merchant.'/'.$agency;
if(!is_dir($file_path)){
mkdir($file_path, 0777, true);
}
file_put_contents($file_path.'/'.$agency.'_' . $file . date('Ymd',time()) . '.log', date('Y-m-d H:i:s',time()) .' ' . var_export($data,true) . "\r\n", FILE_APPEND);
}
返回二維數組其中一段的數據
/**
* [slice description] 返回二維數組其中一段的數據
* @param [type] $arr [description] 傳二維關聯數組
* @param [type] $star [description] 截取的開始位置
* @param [type] $length [description] 截取的長度
* @param [type] $order [description] 0順序 -1倒序
* @param [type] $preserve [description] 保持索引關係 true - 保留鍵名 false - 預設。重置鍵名
* @return [type] [description]
*/
function slice($arr, $star, $length, $order = 0, $preserve = false)
{
foreach ($arr as $key => $value) {
$arr[$key] = array_slice($value, $star, $length, $preserve);
}
if ($order) {
return array_reverse($arr);
}
return $arr;
}
例子:
<?php
header('Content-Type=text/html;charset:utf8');
$arr = array(
[
'id' => '1',
'name' => '李四',
'age' => '21',
'gender' => '男',
],
[
'id' => '2',
'name' => '王五',
'age' => '22',
'gender' => '男',
],
);
echo '<pre>';
print_r(slice($arr, 0, 2));
//列印:
// 列印結果:
// Array
// (
// [0] => Array
// (
// [id] => 1
// [name] => 李四
// )
// [1] => Array
// (
// [id] => 2
// [name] => 王五
// )
// )
獲取ip地址
- 方法一
$_SERVER['REMOTE_ADDR']
- 方法二
/**
* 獲得訪問的IP
* Enter description here ...
*/
function getIP() {
return isset($_SERVER["HTTP_X_FORWARDED_FOR"])?$_SERVER["HTTP_X_FORWARDED_FOR"]
:(isset($_SERVER["HTTP_CLIENT_IP"])?$_SERVER["HTTP_CLIENT_IP"]
:$_SERVER["REMOTE_ADDR"]);
}
- 方法三
/**
* 獲得用戶的真實IP地址
*
* @access public
* @return string
*/
function real_ip()
{
static $realip = NULL;
if ($realip !== NULL)
{
return $realip;
}
if (isset($_SERVER))
{
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
/* 取X-Forwarded-For中第一個非unknown的有效IP字元串 */
foreach ($arr AS $ip)
{
$ip = trim($ip);
if ($ip != 'unknown')
{
$realip = $ip;
break;
}
}
}
elseif (isset($_SERVER['HTTP_CLIENT_IP']))
{
$realip = $_SERVER['HTTP_CLIENT_IP'];
}
else
{
if (isset($_SERVER['REMOTE_ADDR']))
{
$realip = $_SERVER['REMOTE_ADDR'];
}
else
{
$realip = '0.0.0.0';
}
}
}
else
{
if (getenv('HTTP_X_FORWARDED_FOR'))
{
$realip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif (getenv('HTTP_CLIENT_IP'))
{
$realip = getenv('HTTP_CLIENT_IP');
}
else
{
$realip = getenv('REMOTE_ADDR');
}
}
preg_match("/[\d\.]{7,15}/", $realip, $onlineip);
$realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';
return $realip;
}
PHP限制IP訪問 只允許指定IP訪問 允許*號通配符過濾IP
/**
* 檢測訪問的ip是否為規定的允許的ip
* Enter description here ...
*/
function check_ip(){
$ALLOWED_IP=array('192.168.2.*','127.0.0.1','192.168.2.49');
$IP=getIP();
$check_ip_arr= explode('.',$IP);//要檢測的ip拆分成數組
#限制IP
if(!in_array($IP,$ALLOWED_IP)) {
foreach ($ALLOWED_IP as $val){
if(strpos($val,'*')!==false){//發現有*號替代符
$arr=array();//
$arr=explode('.', $val);
$bl=true;//用於記錄迴圈檢測中是否有匹配成功的
for($i=0;$i<4;$i++){
if($arr[$i]!='*'){//不等於* 就要進來檢測,如果為*符號替代符就不檢查
if($arr[$i]!=$check_ip_arr[$i]){
$bl=false;
break;//終止檢查本個ip 繼續檢查下一個ip
}
}
}//end for
if($bl){//如果是true則找到有一個匹配成功的就返回
return;
die;
}
}
}//end foreach
header('HTTP/1.1 403 Forbidden');
echo "Access forbidden";
die;
}
}
獲取地址路徑里0到第一個\線的部分
function f_dirname($f_path){
return substr($f_path,0,strrpos($f_path,'\\'));
}
獲取當前文件所在的文件路徑
define('CUR_API_PATH', rtrim(str_replace('\\', '/', dirname(__FILE__)),'/').'/');
獲取隨機字元串
/**
* 隨機字元
* @param int $length 長度
* @param string $type 類型
* @param int $convert 轉換大小寫 1大寫 0小寫
* @return string
*/
function random($length=10, $type='letter', $convert=0)
{
$config = array(
'number'=>'1234567890',
'letter'=>'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
'string'=>'abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789',
'all'=>'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
);
if(!isset($config[$type])) $type = 'letter';
$string = $config[$type];
$code = '';
$strlen = strlen($string) -1;
for($i = 0; $i < $length; $i++){
$code .= $string{mt_rand(0, $strlen)};
}
if(!empty($convert)){
$code = ($convert > 0)? strtoupper($code) : strtolower($code);
}
return $code;
}
中文字元串反轉
檢查目標文件夾是否存在,如果不存在則自動創建該目錄
/**
* 檢查目標文件夾是否存在,如果不存在則自動創建該目錄
*
* @access public
* @param string folder 目錄路徑。不能使用相對於網站根目錄的URL
*
* @return bool
*/
function make_dir($folder)
{
$reval = false;
if (!file_exists($folder))
{
/* 如果目錄不存在則嘗試創建該目錄 */
@umask(0);
/* 將目錄路徑拆分成數組 */
preg_match_all('/([^\/]*)\/?/i', $folder, $atmp);
/* 如果第一個字元為/則當作物理路徑處理 */
$base = ($atmp[0][0] == '/') ? '/' : '';
/* 遍歷包含路徑信息的數組 */
foreach ($atmp[1] AS $val)
{
if ('' != $val)
{
$base .= $val;
if ('..' == $val || '.' == $val)
{
/* 如果目錄為.或者..則直接補/繼續下一個迴圈 */
$base .= '/';
continue;
}
}
else
{
continue;
}
$base .= '/';
if (!file_exists($base))
{
/* 嘗試創建目錄,如果創建失敗則繼續迴圈 */
if (@mkdir(rtrim($base, '/'), 0777))
{
@chmod($base, 0777);
$reval = true;
}
}
}
}
else
{
/* 路徑已經存在。返回該路徑是不是一個目錄 */
$reval = is_dir($folder);
}
clearstatcache();
return $reval;
}
預設獲得文件修改時間
function filetime($way,$char='m'){
date_default_timezone_set('PRC');
switch($char){
case 'c':$localtime = date('Y-m-d H:i:s',filectime($way));
break;
case 'm':$localtime = date('Y-m-d H:i:s',filemtime($way));
break;
case 'a':$localtime = date('Y-m-d H:i:s',fileatime($way));
break;
}
return $localtime;
}
判斷尾碼類型
function suffixtype($f_path){
$info = pathinfo($f_path);
$f_type = 'file';
switch(strtolower(@$info["extension"])){
case 'jpg':case 'jpeg':case 'gif':
case 'png':case 'bmp':$f_type = 'image';break;
case 'pl':case 'c':case 'cpp':case 'log':case 'asp':case 'php':case 'jsp':case 'txt':case 'xml':case 'html':case 'htm':case 'phtml':case 'jhtml':case 'java':case 'cfg':case 'ini':
case 'text':case 'bat':$f_type = 'text';break;
}
return $f_type;
}
檢查文件類型
/**
* 檢查文件類型
*
* @access public
* @param string filename 文件名
* @param string realname 真實文件名
* @param string limit_ext_types 允許的文件類型
* @return string
*/
function check_file_type($filename, $realname = '', $limit_ext_types = '')
{
if ($realname)
{
$extname = strtolower(substr($realname, strrpos($realname, '.') + 1));
}
else
{
$extname = strtolower(substr($filename, strrpos($filename, '.') + 1));
}
if ($limit_ext_types && stristr($limit_ext_types, '|' . $extname . '|') === false)
{
return '';
}
$str = $format = '';
$file = @fopen($filename, 'rb');
if ($file)
{
$str = @fread($file, 0x400); // 讀取前 1024 個位元組
@fclose($file);
}
else
{
if (stristr($filename, ROOT_PATH) === false)
{
if ($extname == 'jpg' || $extname == 'jpeg' || $extname == 'gif' || $extname == 'png' || $extname == 'doc' ||
$extname == 'xls' || $extname == 'txt' || $extname == 'zip' || $extname == 'rar' || $extname == 'ppt' ||
$extname == 'pdf' || $extname == 'rm' || $extname == 'mid' || $extname == 'wav' || $extname == 'bmp' ||
$extname == 'swf' || $extname == 'chm' || $extname == 'sql' || $extname == 'cert'|| $extname == 'pptx' ||
$extname == 'xlsx' || $extname == 'docx')
{
$format = $extname;
}
}
else
{
return '';
}
}
if ($format == '' && strlen($str) >= 2 )
{
if (substr($str, 0, 4) == 'MThd' && $extname != 'txt')
{
$format = 'mid';
}
elseif (substr($str, 0, 4) == 'RIFF' && $extname == 'wav')
{
$format = 'wav';
}
elseif (substr($str ,0, 3) == "\xFF\xD8\xFF")
{
$format = 'jpg';
}
elseif (substr($str ,0, 4) == 'GIF8' && $extname != 'txt')
{
$format = 'gif';
}
elseif (substr($str ,0, 8) == "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A")
{
$format = 'png';
}
elseif (substr($str ,0, 2) == 'BM' && $extname != 'txt')
{
$format = 'bmp';
}
elseif ((substr($str ,0, 3) == 'CWS' || substr($str ,0, 3) == 'FWS') && $extname != 'txt')
{
$format = 'swf';
}
elseif (substr($str ,0, 4) == "\xD0\xCF\x11\xE0")
{ // D0CF11E == DOCFILE == Microsoft Office Document
if (substr($str,0x200,4) == "\xEC\xA5\xC1\x00" || $extname == 'doc')
{
$format = 'doc';
}
elseif (substr($str,0x200,2) == "\x09\x08" || $extname == 'xls')
{
$format = 'xls';
} elseif (substr($str,0x200,4) == "\xFD\xFF\xFF\xFF" || $extname == 'ppt')
{
$format = 'ppt';
}
} elseif (substr($str ,0, 4) == "PK\x03\x04")
{
if (substr($str,0x200,4) == "\xEC\xA5\xC1\x00" || $extname == 'docx')
{
$format = 'docx';
}
elseif (substr($str,0x200,2) == "\x09\x08" || $extname == 'xlsx')
{
$format = 'xlsx';
} elseif (substr($str,0x200,4) == "\xFD\xFF\xFF\xFF" || $extname == 'pptx')
{
$format = 'pptx';
}else
{
$format = 'zip';
}
} elseif (substr($str ,0, 4) == 'Rar!' && $extname != 'txt')
{
$format = 'rar';
} elseif (substr($str ,0, 4) == "\x25PDF")
{
$format = 'pdf';
} elseif (substr($str ,0, 3) == "\x30\x82\x0A")
{
$format = 'cert';
} elseif (substr($str ,0, 4) == 'ITSF' && $extname != 'txt')
{
$format = 'chm';
} elseif (substr($str ,0, 4) == "\x2ERMF")
{
$format = 'rm';
} elseif ($extname == 'sql')
{
$format = 'sql';
} elseif ($extname == 'txt')
{
$format = 'txt';
}
}
if ($limit_ext_types && stristr($limit_ext_types, '|' . $format . '|') === false)
{
$format = '';
}
return $format;
}
獲取文件尾碼名,並判斷是否在定義的數組中
/**
* 獲取文件尾碼名,並判斷是否合法
*
* @param string $file_name //是一個文件的路徑
* @param array $allow_type //需要的文件類型數組
* @return blob
*/
function get_file_suffix($file_name, $allow_type = array())
{
$file_suffix = strtolower(array_pop(explode('.', $file_name)));
if (empty($allow_type))
{
return $file_suffix;
}
else
{
if (in_array($file_suffix, $allow_type))
{
return true;
}
else
{
return false;
}
}
}
判斷路徑是文件還是目錄
function f_type($f_path){
return is_dir($f_path)?'dir':suffixtype($f_path);
}
計算文件或目錄位元組大小
//計算文件或目錄位元組大小
function bytesize_calc($f_path){
if(!is_dir($f_path)){
return sprintf("%u", filesize($f_path));}
$bytesize = 0;
$f_arr = scandir($f_path);
$size = count($f_arr);
for($i=0;$i<$size;$i++){
if('.'==$f_arr[$i]||'..'==$f_arr[$i])continue;
$file_or_dir = $f_path.'/'.$f_arr[$i];
$bytesize += bytesize_calc($file_or_dir);
}
return $bytesize;
}
//獲得文件大小
function f_size($f_path){
return size_formate(bytesize_calc($f_path));
}
接收非同步過來的get消息
$sms_result_data = $_GET; //用這種
$param = request()->param(); //thinkphp5接收消息
$sms_result_data1 = file_get_contents("php://input");
curl之get請求
function _curl_get($urldata)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$urldata);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//不驗證SSL證書。
$data = curl_exec($ch);
curl_close($ch);
if ($data)
return $data;
else
return false;
}
curl之post請求
如果是有圖片要上傳加下麵用這行代碼
curl_file_create(ROOT_PATH.'public'.$value["goods_img"]);
/**
* [post description]
* @param [type] $url [請求的url]
* @param string $post_data [請求的數據]
* @param integer $timeout [請求超時時間]
* @return [type] $Mix [混合數據json|array|obj]
*/
function post($url, $post_data = '', $timeout = 3000)
{
header("Content-type:text/html;charset=utf-8");
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_HEADER, false);
$file_contents =