ThinkPHP3.2.3模板中使用自定义函数
function fix_pre($str, $fix='0', $len=2, $type=STR_PAD_LEFT){
$str = str_pad($str, $len, $fix, $type);
return $str;
}
{:fix_pre($seats['seats'], '0', 3)}
function fix_pre($str, $fix='0', $len=2, $type=STR_PAD_LEFT){
$str = str_pad($str, $len, $fix, $type);
return $str;
}
{:fix_pre($seats['seats'], '0', 3)}
项目中需要读取php中图片保存到服务器同时将图片地址写入数据库,phpexcel示例代码如下:
<?php
ini_set("display_errors",1);
include 'PHPExcel.php';
include 'PHPExcel/IOFactory.php';
define('EXCEL_EXTENSION_2003', "xls");
define('EXCEL_EXTENSION_2007', "xlsx");
$fileName2003 = "file.xls";
$fileName2007 = "file.xlsx";
$fileName = $fileName2003;
//$fileName = $fileName2007;
if(getExtendFileName($fileName) == EXCEL_EXTENSION_2003)
{
$reader = PHPExcel_IOFactory::createReader('Excel5');
}
else if(getExtendFileName($fileName) == EXCEL_EXTENSION_2007)
{
$reader = new PHPExcel_Reader_Excel2007();
}
$PHPExcel = $reader->load($fileName);
$worksheet = $PHPExcel->getActiveSheet();
$imageInfo = extractImageFromWorksheet($worksheet,"savepath/");
print_r($imageInfo);
/**
* 检测文件类型
*
* @param <type> $file_name The file name
*
* @return <type> The extend file name.
*/
function getExtendFileName($file_name) {
$extend = pathinfo($file_name);
$extend = strtolower($extend["extension"]);
return $extend;
}
/**
* 获取图片
*
* @param <type> $worksheet The worksheet
* @param <type> $basePath The base path
*
* @return array ( description_of_the_return_value )
*/
function extractImageFromWorksheet($worksheet, $basePath){
$result = array();
$imageFileName = "";
foreach ($worksheet->getDrawingCollection() as $drawing) {
$xy=$drawing->getCoordinates();
$path = $basePath;
// for xlsx
if ($drawing instanceof PHPExcel_Worksheet_Drawing) {
$filename = $drawing->getPath();
$imageFileName = $drawing->getIndexedFilename();
$path = $path . $drawing->getIndexedFilename();
copy($filename, $path);
$result[$xy] = $path;
// for xls
} else if ($drawing instanceof PHPExcel_Worksheet_MemoryDrawing) {
$image = $drawing->getImageResource();
$renderingFunction = $drawing->getRenderingFunction();
switch ($renderingFunction) {
case PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG:
$imageFileName = $drawing->getIndexedFilename();
$path = $path . $drawing->getIndexedFilename();
imagejpeg($image, $path);
break;
case PHPExcel_Worksheet_MemoryDrawing::RENDERING_GIF:
$imageFileName = $drawing->getIndexedFilename();
$path = $path . $drawing->getIndexedFilename();
imagegif($image, $path);
break;
case PHPExcel_Worksheet_MemoryDrawing::RENDERING_PNG:
$imageFileName = $drawing->getIndexedFilename();
$path = $path . $drawing->getIndexedFilename();
imagegif($image, $path);
break;
case PHPExcel_Worksheet_MemoryDrawing::RENDERING_DEFAULT:
$imageFileName = $drawing->getIndexedFilename();
$path = $path . $drawing->getIndexedFilename();
imagegif($image, $path);
break;
}
$result[$xy] = $imageFileName;
}
}
return $result;
}
<?php
//屏蔽北上广
$ip = get_client_ip();
// $url = "http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
$url = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=".$ip;
$data = https_request($url);
$data = json_decode($data, true);
$region = $data['province'];
if($region == '广东' || $region == '北京' || $region == '上海'){
header("Content-type: text/html; charset=utf-8");
echo "<h1>网站升级中</h1>";
die;
}
/**
* 获取访客IP地址
*
* @param integer $type The type
* @param boolean $adv The advance
*
* @return array The client ip.
*/
function get_client_ip($type = 0,$adv=false) {
$type = $type ? 1 : 0;
static $ip = NULL;
if ($ip !== NULL) return $ip[$type];
if($adv){
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$pos = array_search('unknown',$arr);
if(false !== $pos) unset($arr[$pos]);
$ip = trim($arr[0]);
}elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
}elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
// IP地址合法验证
$long = sprintf("%u",ip2long($ip));
$ip = $long ? array($ip, $long) : array('0.0.0.0', 0);
return $ip[$type];
}
/**
* 获取接口数据
*
* @param <type> $url The url
*
* @return <type> ( description_of_the_return_value )
*/
function https_request($url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
本地存储localStorage以及它的封装接口store.js的使用
from:https://segmentfault.com/a/1190000007539338
本地存储localstorage
localstorage
是 HTML5 提供的在客户端存储数据的新方法,主要作用是将数据保存在客户端中,并且数据是永久保存
的,除非人为干预删除。
shuffle() 函数把数组中的元素按随机顺序重新排列。
该函数为数组中的元素分配新的键名,已有键名将被删除。
shuffle($arr);
$(":radio[name='sex'][value='" + sex + "']").prop("checked", "checked");
PHP自身内置了很多函数,这也是使用PHP能够极大提高开发效率的一个重要原因,获取数组中一元素的位置有很多方法,其中PHP自身就已经内置了一个函数array_keys()
,下边的代码能够打印出所有PHP的内置函数:print_r(get_defined_functions());
array_keys(array,value,[strict])
其中strict设置为true将触发数据类型校验的严格匹配模式,默认为false
【本文转自互联网,如有涉及侵权等伤害到您的利益,请及时告知,本人将马上删除】
最在网络上面查找关于vcard格式的技术资料,发现中文的资料很少,只能阅读vCard MIME
Directory Profile(rfc-2426)翻译它需要花太多的时间,现在把自己的理解做下记录,
希望对大家有帮助