简介

function a($b, $c)
{
echo $b;
echo $c;
}
call_user_func_array('a', array("111", "222"));
//显示 111 222
/**
* 写入文件 ...
* @param $filename
* @param $mode
* @param $word
*/
function writeTxt($filename, $mode = 'w', $word = '')
{
//echo $filename;
$fp = fopen ( $filename, $mode );
//var_dump($word);
flock ( $fp, LOCK_EX );
fwrite ( $fp, $word );
flock ( $fp, LOCK_UN );
fclose ( $fp );
}
/**
*/
function readDir($dir50 = "./chain/200/")
{
$dir50 = "./chain/200/";
$dir50sql = "";
// Open a known directory, and proceed to read its contents
if (is_dir($dir50)) {
if ($dh = opendir($dir50)) {
while (($file = readdir($dh)) !== false) {
if($file != "." && $file != "..")
{
//4、进行处理
//这里简单的用echo来输出文件名
$dir50sql .= str_replace(".gif","",$file).",";
}
}
closedir($dh);
}
}
}
/**
* 读取Excel表格
* @param $filePath Excel文件路径
* @param $field 需要保存的字段 array('id','username','password')
* @param $column 读取Excel那列 array('A','B','C')
* @examlpe
$filePath = '1.xls';
$field = array('id', 'username', 'password');
$column = array( 'A', 'B', 'C');
readExcel($filePath,$field,$column);
*/
function readExcel($filePath,$field,$column){
$objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
$objPHPExcel = $objReader->load($filePath); //$filename可以是上传的文件,或者是指定的文件
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
for($j=1;$j<=$highestRow;$j++)
{
$colData = array();
$count = count($column);
for($i=0;$i<$count;$i++){
$colData[$field[$i]] = $objPHPExcel->getActiveSheet()->getCell($column[$i].$j)->getValue();//获取A列的值
}
$excelData[] = $colData;
}
return $excelData;
}
/**
* 导出数据为excel表格
* @param $data 一个二维数组,结构如同从数据库查出来的数组
* @param $title excel的第一行标题,一个数组,如果为空则没有标题
* @param $filename 下载的文件名
* @examlpe
exportexcel($arr,array('id','账户','密码','昵称'),'文件名!');
*/
function exportexcel($data=array(),$title=array(),$filename='report'){
header("Content-type:application/octet-stream");
header("Accept-Ranges:bytes");
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=".$filename.".xls");
header("Pragma: no-cache");
header("Expires: 0");
//导出xls 开始
if (!empty($title)){
foreach ($title as $k => $v) {
$title[$k]=iconv("UTF-8", "GB2312",$v);
}
$title= implode("\t", $title);
echo "$title\n";
}
if (!empty($data)){
foreach($data as $key=>$val){
foreach ($val as $ck => $cv) {
$data[$key][$ck]=iconv("UTF-8", "GB2312", $cv);
}
$data[$key]=implode("\t", $data[$key]);
}
echo implode("\n",$data);
}
}
//#############生成json数据
function cachegetMddAndHotel($citys){
//echo $citys;
$res = array();
$res[$citys]['mddid'] = $this -> getMudidiId($citys);
$res[$citys]['mdd'] = $this -> getBiyou($citys,6);
$res[$citys]['hotel'] = $this -> getHotelinfo($citys,5);
$res[$citys]['youji'] = $this -> getYouji($citys,6);
$res[$citys]['alljingdian'] = $this -> getBiyouCount($citys);
//print_r($res);
//die();
return $res;
}
function getMddAndHotel($name,$citys){
$xml_root = dirname(__FILE__) . '/cachejosn/';
//echo $xml_root;
$xml_name = $name."_".$citys.".json";
$filename = $xml_root . $xml_name;
if (file_exists($filename)) {
$filemtime = filemtime($filename);
$now = time();
if ($filemtime < ($now - 86400*30)) {
//需重新生成
$xml_content = $this -> cachegetMddAndHotel($citys);
$result = $this -> createXML(json_encode($xml_content), $xml_root, $xml_name);
return $xml_content;
} else {
//直接读取输出
$xml_content = json_decode(file_get_contents($filename), true);
return $xml_content;
}
} else {
//需生成
$xml_content = $this -> cachegetMddAndHotel($citys);
$result = $this -> createXML(json_encode($xml_content), $xml_root, $xml_name);
return $xml_content;
}
}
/**
* 创建xml
* @param $xml_root //创建的xml本地路径
* @param $xml_url //接口xml的地址
*/
function createXML($xml_content, $xml_root, $xml_name)
{
$xml_root_all = $xml_root . $xml_name; //xml接口的本地路径+文件全名
//var_dump($xml_root_all);
$this -> CreateFolder($xml_root);
//var_dump($this -> CreateFolder($xml_root));
//$xml_content = Functions::GetHttps($xml_url);
if (strlen($xml_content) > 0) {
$rs = file_put_contents($xml_root_all, $xml_content);
return $rs;
} else {
return false;
}
}
// 循环创建目录创建目录 递归创建多级目录
function CreateFolder($dir, $mode = 0777)
{
if (is_dir($dir) || @mkdir($dir, $mode))
return true;
if (!self::CreateFolder(dirname($dir), $mode))
return false;
return @mkdir($dir, $mode);
//rdswyk1vn38714xgl0a1public.mysql.rds.aliyuncs.com
}
//#############生成json数据end
/**
* 生成二维码
*
* @param [string] $path [二维码地址]
* @param [string] $url [url 地址]
* @param [string] $logo [logo 地址]
* @return [string] [二维码地址]
*/
function createEwm($path, $url = "http://lf.imvixi.com/wap/index/", $logo = "") {
//创建目录及文件名
$filepath = ROOT_PATH . 'upload' . DIRECTORY_SEPARATOR . "qrcode" . DIRECTORY_SEPARATOR . date("Y-m");
$filename = $path . date("Hi") . ".png";
dir_create($filepath); //创建目录
//生成二维码图片
\My\PHPQRcode::png($url, $filepath . $filename, 0, 7);
if (!empty($logo)) {
$logo = ROOT_PATH . 'upload' . DIRECTORY_SEPARATOR . "logo" . DIRECTORY_SEPARATOR.'if_son_3231119.png';//准备好的logo图片
$qr_path = $filepath.$filename;//已经生成的原始二维码图
$QR = imagecreatefromstring(file_get_contents($qr_path));
$logo = imagecreatefromstring(file_get_contents($logo));
$QR_width = imagesx($QR); //二维码图片宽度
$QR_height = imagesy($QR); //二维码图片高度
$logo_width = imagesx($logo); //logo图片宽度
$logo_height = imagesy($logo); //logo图片高度
$logo_qr_width = $QR_width / 5;
$scale = $logo_width / $logo_qr_width;
$logo_qr_height = $logo_height / $scale;
$from_width = ($QR_width - $logo_qr_width) / 2;
//重新组合图片并调整大小
imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
imagepng($QR, $qr_path); //保存到本地
}
$img_path = 'upload' . DIRECTORY_SEPARATOR . "qrcode" . DIRECTORY_SEPARATOR . date("Y-m") . $filename;
return $img_path;
}
/**
* 合成二维码海报
*
* @param [string] $qrcode_path [二维码地址]
* @param [string] $dst_path [海报 地址]
* @param [string] $path [合成后地址]
* @return [string] [合成后地址]
*/
function createComposeEwm($qrcode_path, $dst_path, $path, $test1 = "", $test2 = "") {
//合成图片
//$dst_path = ROOT_PATH . 'upload' . DIRECTORY_SEPARATOR . '/ditu/20180713171126.png'; //海报最底层得背景
//二维码的路径地址
//$qrcode_path = ROOT_PATH . 'upload' . DIRECTORY_SEPARATOR . "qrcode" . DIRECTORY_SEPARATOR . "152509.png"; //二维码
//二维码缩略图保存路径
// $thumb_path = ROOT_PATH . '/upload/qrcode_thumb/';
// //判断目录存在否,不存在则创建目录
// if (!is_dir($thumb_path)) {
// dir_create($thumb_path); //创建目录
// }
// $thumb_name = $thumb_path . '152509.png'; //生成的缩略图的文件名
// //生成缩略图并保存
$image = new \Think\Image();
// $image->open($qrcode_path)->thumb(234, 234)->save($thumb_name); //保存二维码缩略图
//合成图保存路径
$compose_path = ROOT_PATH . 'upload' . DIRECTORY_SEPARATOR . 'compose' . DIRECTORY_SEPARATOR . date("Y-m");
if (!is_dir($compose_path)) {
dir_create($compose_path); //创建目录
}
$compose_name = $compose_path . $path . date("Hi") . ".png";
$font = ROOT_PATH . 'upload' . DIRECTORY_SEPARATOR . "font" . DIRECTORY_SEPARATOR . "ADOBEHEITISTD-REGULAR.OTF"; //写的文字用到的字体。字体最好用系统有得,否则会包charmap的错,这是黑体
//生成的合成图的文件名
//$image->open($dst_path)->water($thumb_name,array('1','1'),100)->save($compose_name);//坐标定位
$image->open($dst_path)->water($qrcode_path, array('155', '1110'), 100)
->text($test1, $font, "35", '#000000', array('420', '1180'))
->text($test2, $font, "30", '#1c1d60', array('420', '1260'))
->save($compose_name); //位置定位
//$image->open($dst_path)->text($test1, $font,"10", '#00000000')->save($compose_name); //位置定位
$compose_name = 'upload' . DIRECTORY_SEPARATOR . "compose" . DIRECTORY_SEPARATOR . date("Y-m") . $path . date("Hi") . ".png";
return $compose_name;
}
###########################
模拟表单post提交
/**
* 建立请求,以表单HTML形式构造(默认)
* @param $para 请求参数数组
* @param $method 提交方式。两个值可选:post、get
* @param $button_name 确认按钮显示文字
* @param $type 返回的类型,form表单,url链接
* @param $is_auto 返回form表单时是否自动提交
* @return 提交表单HTML文本
*/
if (!function_exists('build_request_form')) {
function build_request_form($url, $para, $method, $button_name = '', $type = 'form', $is_auto = TRUE, $target = '_self') {
//待请求参数数组
$sHtml = "
";
$url = trim($url, '?');
$url .= strpos($url, '?') ? '&' : '?';
while (list ($key, $val) = each($para)) {
$sHtml .= "";
$url .= "{$key}=" . ($val) . '&';
}
$url = trim($url, '&');
//submit按钮控件请不要含有name属性
if ($is_auto) {
$sHtml = $sHtml . "";
$sHtml = $sHtml . "";
} else {
$sHtml = $sHtml . "";
}
return $type == 'url' ? $url : $sHtml;
}
}
/**
* 发送post请求
* @param string $url 请求地址
* @param array $post_data post键值对数据
* @return string
*/
public static function send_post($url, $post_data, $is_ssl = 0, $cacert_path = '') {
$postdata = http_build_query($post_data);
// $options = array(
// 'http' => array(
// 'method' => 'POST',
// 'header' => 'Content-type:application/x-www-form-urlencoded',
// 'content' => $postdata,
// 'timeout' => 15 * 60 // 超时时间(单位:s)
// )
// );
// $context = stream_context_create($options);
// $result = file_get_contents($url, false, $context);
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_URL, $url);
//https访问
if ($is_ssl) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
// curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, TRUE);
curl_setopt($ch, CURLOPT_CAINFO, $cacert_path);
} else {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
}
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
###########################
?>