已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > PHP > 讨论/求助

标题: 接触PHP的一点记录

作者: @Ta

时间: 2017-04-08发布,2017-04-08修改

点击: 2869

接收变量和处理变量用双引还是单引
双引可以用,但是不如单引好
例如
网址参数
$page=isset($_GET['page'])?$_GET['page']:1;

json参数
echo $json_str['aa'];


关于输出时用双引还是单引的问题
据说,单引消耗资源少,因为PHP把双引里面的字符串作为变量解析
例如
echo '示例语句\r\n';

\r\n会被直接输出,而不是解析成换行回车
看情况用

关于json的输出问题
有时候我们输出需要$str['aa'],有时候却要用$str->aa
这是因为json中含有Object对象的问题
示例
[{"title":"12","content":"123456"}]

如果
$json_str=json_decode($str);

这样就会包含Object对象,就需要
echo $json_str->title;

如果
$json_str=json_decode($str,true);

就会把Object对象转为array,就可以$json_str['title']

明明json数据没有问题,解析空白、NULL
有bom头
尝试:
if (substr($return, 0,3) == pack("CCC",0xef,0xbb,0xbf)) {
    $return = substr($return, 3);
}
$data = json_decode($return,true);


trim($result, "\xEF\xBB\xBF");
 

如何简单的分页,仅需两个参数
$page-------当前页
$pagecount--总页数
if ($pagecount>1){//如果总页数大于1则显示
	if ($page>1){//当前页大于1
		echo "<a href=\"?page=1\">首页</a> \r\n";
		echo "<a href=\"?page=".($page-1)."\">上一页</a> \r\n";
	}
	if ($page<$pagecount){//当前页小于总页数
		echo "<a href=\"?page=".($page+1)."\">下一页</a> \r\n";
		echo "<a href=\"?page=".$pagecount."\">尾页</a>\r\n";
	}
}


sqlite数据库自动收缩
新建数据库后执行PRAGMA auto_vacuum = 1
已插入数据执行无效
仅支持sqliteDB3

PHP操作sqliteDB3(这里就不介绍sqliteDB2了)
$conn = new PDO("sqlite:数据库文件名");
$result=$conn->query(查询语句);//支持limit
//输出一个
$row=$result -> fetch();
echo $row['test'];
//输出全部
while($row = $result -> fetch()){
...
}
//
foreach($result -> fetch() as $i => $row){
...
}
支持fetchAll()

foreach比for效率高,简单,快,但不能一味的用foreach


mysql修改max_allowed_packet记录以解决不能插入超长字符串,好多M的那种字符串,比如图片转成base64
控制台里执行
set global max_allowed_packet = 2*1024*1024*10
//设置为20M
查看
show VARIABLES like '%max_allowed_packet%';

正则匹配一切
([\w\W]*?)


([\d\D]*?)


([\s\S]*?)


巧妙地用系统函数可以解决超多的问题

暂时就记下这么多
子非鱼,焉知鱼之乐!己所不欲,勿施于人!-MI 4s Black-

[隐藏样式|查看源码]


『回复列表(2|隐藏机器人聊天)』

1. 其实我觉得对象形式更好用
(/@Ta/2017-04-08 15:31//)

2. 迷上了CLI模式最近
(/@Ta/2017-04-09 21:16//)

回复需要登录

6月28日 22:40 星期六

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1