CI写的一个WEB站点,迁移到另一个服务器以后出现无法发送邮件的情况.打开CI的调试后提示php Mail()函数无法成功发送邮件
,
按照google大神的结果,有配置php.ini
里sendmail_path
的,有安装各种奇葩程序的,均以失败告终,后来忘了从哪看到的了,
执行如下命令:
echo "FuckYou" | mail -s "test" j582033@163.com
提示sendmail异常,重新安装sendmail试试,可能能解决此问题.
CI写的一个WEB站点,迁移到另一个服务器以后出现无法发送邮件的情况.打开CI的调试后提示php Mail()函数无法成功发送邮件
,
按照google大神的结果,有配置php.ini
里sendmail_path
的,有安装各种奇葩程序的,均以失败告终,后来忘了从哪看到的了,
执行如下命令:
echo "FuckYou" | mail -s "test" j582033@163.com
提示sendmail异常,重新安装sendmail试试,可能能解决此问题.
==========================================================
xx($a) a.xx()
----------------------------------------------------------
php js 说明
array_pop() pop() #出栈
array_push() push() #入栈
array_shift() shift() #顶部弹出
array_unshift() unshift() #顶部压入
implode() join() #数组转为字符串
explode() split() #字符串转为数组
array_sclice() slice() #按条件取值(php为按偏移量取出 js为按片段取出)
array_spclice() splice() #按条件插入或删除元素
-----------------------------------------------------------
$a = array('a', 'b', 'c'); a = ['a', 'b', 'c']
-----------------------------------------------------------
array_reverse() reverse() #数组元素颠倒
arsort() sort() #php对数组进行排序并保持索引,且php的支持数字及字母排序,
asort() - 当字母数字混合时,排序规则为[A~z0~9]
rsort() - #js的sort()只能对字母区分大小写排序,如需对数字排序需使用函数表达式
var a = [46, 85, 99, 33];
a.sort(function(a, b){
return a-b; // b-a为倒序
});
#js的sort()对字符串进行不区分大小写的排序也需要使用函数表达式
var a = ['Bug', 'Dog', 'ant', 'cat'];
a.sort(function(s, t){
var a = s.toLowerCase(); 转换为小写
var = s.toLowerCase();
if(a < b) return -1;
if(a > b) return 1;
return 0;
});
-----------------------------------------------------------
使用分页的方式,按偏移量来多次导出,追加合并为一个新文件,避免占用内存过高或下载过慢.
例子较简单:
<pre>
<?php
class test extends Controller {
private $table;
private $file;
private $filename;
public function __construct(){
parent::__construct();
$this->file = FCPATH.'files/excel/';
$this->filename = time().".csv";
}
function index($pid=null) { //{{{
if(!$pid) exit("缺少id");
$this->table = "project_{$pid}_search";
$count = $this->db->from($this->table)->count_all_results();
$basic = 300;
$time = ceil($count/$basic);
$t = 0;
$start_time = microtime(true);
for($i=0; $i<$time; $i++){
$start = $basic*$t++;
self::section($start, $basic);
}
$end_time = microtime(true);
echo '耗时'.round($end_time-$start_time,3).'秒';
echo "<a href='/files/excel/{$this->filename}'>点击下载</a>";
} //}}}
private function section($start, $limit){ //用分页的方式取出数据并写入文件{{{
$sql = "select * from {$this->table} limit $start, $limit";
$result = $this->db->query($sql)->result_array();
$new_result = self::mapping($result);
$file = $this->file.$this->filename;
$open = fopen($file, 'a'); //以追加模式打开文件
foreach($new_result as $r){
fputcsv($open, $r);
}
fclose($open);
$end = $start+$limit;
echo "第 $start ~ $end 处理完成...<br />";
ob_flush();
flush();
} //}}}
private function mapping($array){ //结果集转换成新的数组{{{
$new_array = array();
foreach ($array as $arr){
$tmp_array = array();
foreach($arr as $k){
$tmp_array[] = $k;
}
$new_array[] = $tmp_array;
}
return $new_array;
} //}}}
}
?>
想上传张图片,结果报错了
按照以往思路开始排查
难道是服务器设置问题?
查看 wp-contents
下uploads权限, 755, 没有问题.
查看 /tmp
权限, 没问题.
上次重启fastcgi,用户组参数没生效,但网站访问正常,所以也就没有在意.
究其原因,是由于 php5-cgi
未使用 www-data
用户组来启动导致.
killall php5-cgi
/usr/bin/spawn-fcgi -p 9000 -a 127.0.0.1 -C 4 -u www-data -g www-data -f /usr/bin/php5-cgi
上传成功,问题解决.
URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式而导致解码失败,可以替换相关字符来达到安全传递的目的.
<?php
function base64_url_encode($input) {
return strtr(base64_encode($input), '+/=', '-_,');
}
function base64_url_decode($input) {
return base64_decode(strtr($input, '-_,', '+/='));
}
?>
Copyright © 2016 yjiang's cake