二维数组中取某一相同字段的值进行,拼接字符串
使用PHP自带的一个函数:array_column() ,该函数的作用是返回输入数组中某个单一列的值。
$firms = M('lawfirm')->where('status=1')->field('id')->select();
$firmids = array_column($firms, 'id');
$who = implode(',', $firmids);
或是通过foreach进行拼装。
使用PHP自带的一个函数:array_column() ,该函数的作用是返回输入数组中某个单一列的值。
$firms = M('lawfirm')->where('status=1')->field('id')->select();
$firmids = array_column($firms, 'id');
$who = implode(',', $firmids);
或是通过foreach进行拼装。
PHP实现页面执行中显示执行信息
set_time_limit(0); //在有关数据库的大量数据的时候,可以将其设置为0,表示无限制。
ob_end_clean(); //在循环输出前,要关闭输出缓冲区
echo str_pad('',1024); //浏览器在接受输出一定长度内容之前不会显示缓冲输出,这个长度值 IE是256,火狐是1024,不会出现上下的拉动条。
for($i=1;$i<=100;$i++){
echo $i.'<br>';
flush(); //刷新输出缓冲
sleep(1); //这个控制输出的速度。
}
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;
}
shuffle() 函数把数组中的元素按随机顺序重新排列。
该函数为数组中的元素分配新的键名,已有键名将被删除。
shuffle($arr);
PHP自身内置了很多函数,这也是使用PHP能够极大提高开发效率的一个重要原因,获取数组中一元素的位置有很多方法,其中PHP自身就已经内置了一个函数array_keys()
,下边的代码能够打印出所有PHP的内置函数:print_r(get_defined_functions());
array_keys(array,value,[strict])
其中strict设置为true将触发数据类型校验的严格匹配模式,默认为false
array_multisort() 函数返回排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。array_multisort(array1,sorting order,sorting type,array2,array3...)
字符串键名将被保留,但是数字键名将被重新索引,从 0 开始,并以 1 递增。