PHP 学习筆記[2] —— 自学PHP 笔记整理
背景:自学PHP遇到的一些小问题总是很是困扰,不同时间段做一下笔记,方便以后的参考及能力的可视化...
1.对于数据库操作的代码,可以提取出一个简单的php文件
//设置连接 oracle 数据库的参数$host = "192.168.11.101";$port = "1521";$sid = "orcl";$sname = "orcl";$server_name = "orcl";$db_username = "system";$db_password = "orcl";$dbstr ="(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =$host)(PORT = $port))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = $server_name)(INSTANCE_NAME = $server_name)))";
$dbconn=oci_connect($db_username,$db_password,$dbstr);//如果去掉最后一个参数或者为“ ”,默认连接本机
2.注意编码问题
有时php包含php文件时,发现可能会有编码的问题
3.json编码,发现对中文的操作不予执行,找到一个解决方法:
4.使用QQ互联进行测试时发现出现的提示信息:
----------------2016/2/29 (记录)
The state does not match. You may be a victim of CSRF.
分析得出,个人在QQ互联中的网站地址写的与默认连接不一致,保证了回调地址的正确以后,进行测试发现正常。
5.php的json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
PHP5.4才支持JSON_UNESCAPED_UNICODE这个参数,此参数是让中文字符在json_encode的时候不用转义,减少数据传输量。但在PHP5.3中,就得自己写个函数来实现,以下就是解决方法:
/**
* 对变量进行 JSON 编码
* @param mixed value 待编码的 value ,除了resource 类型之外,可以为任何数据类型,该函数只能接受 UTF-8 编码的数据
* @return string 返回 value 值的 JSON 形式
*/
function json_encode_ex($value)
{if (version_compare(PHP_VERSION,'5.4.0','<')){$str = json_encode($value);$str = preg_replace_callback("#\\\u([0-9a-f]{4})#i",function($matchs){return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));},$str);return $str;}else{return json_encode($value, JSON_UNESCAPED_UNICODE);}
}
6.虚拟机vmware 中不能上网的一种情况
这两天,在学些LAMP的一点知识,主要记录一些问题在此,希望给遇到相同困扰的人一点参考。---2016.5.25
windows环境下的PHP学习,算是有一点基础了,但毕竟是自学,所以自己的学些规划不够清晰,意识到必须学习Linux系统下的相关知识才行。前几天安装了VMware,并且安装了Ubuntu,CentOS6.5,Deepin三种系统,具体的安装也是参考网络上的图解,其中值得注意的几点是:
·win10环境下的VMware安转和运行时,尽量选择 管理员权限
·Linux系统的选择,各有各的优点吧,个人觉得Deepin是界面最好看的,记得设置用户名和密码
·发现升级为win10系统后,自己所装的虚拟机都不能上网了,后来在VMware->编辑->虚拟网络编辑器 中点击了左下角的“恢复默认设置”,测试发现问题解决
·多数问题,可以百度来的就自己解决,毕竟自己找错误的就是很好的学习。
7.linux命令新发现
今天在使用xshell软件连接Linux系统时发现,只有CentOS可以连接,同时使用putty来测试,证实其他的虚拟机无法连接,根据网上的一个提示 重启ssh服务,当然网上提示的是 "sudo service sshd start",测试发现应该是没有安装的原因,但是使用“sudo apt-get install sshd”是不成功的,可能提示错误或者系统不同的原因吧,然后发现使用 语句“sudo apt-get install ssh”进行顺利安装,同时需要更改目录/etc/ssh/sshd_config中的信息,将PermitRootLogin 改为 true ,最后进行启动服务的命令“sudo service ssh start”,最后测试发现xshell和Putty都可以顺利连接,当然FileZilla也是没问题的。
顺带一提,为了保证在使用FileZilla时满足文件上传下载,需要以管理员root身份登录,如果没有设置root密码,需使用命令$ sudo su 或者$ sudo passwd root 创建密码,如果要转化管理员,使用命令 su user 即可。
8.附带一段进行随机数获取的代码,便于以后参考。
<?php
/*** 此脚本的设计用于测试数据* 获取十八组 八个字节的随机数据 并进行计算整理* 最后以字符串拼接的形式输出 注意其中的十六进制转化*/
$hexadecimal = '7FFFFF';
$maxNum = base_convert($hexadecimal, 16, 10);
echo GetRandStr(18,$maxNum);/*** @param $len 获取数字的次数* @param $tag 数字的最大范围* @return string 获取随机数的字符串**/
function GetRandStr($len,$tag)
{$output='';$output2='';for ($i=0; $i<$len; $i++){$tagNum = mt_rand(0, $tag);$Num1 = sprintf("%06X",$tagNum);//进行位数的补全设置$Num2 = GetNum2($Num1,$i);$output .= '00'.$Num1;$output2.=$Num2;}return $output.$output2;
}/*** @param $num1 传入的第一组数据值* @param $tag1 参考标记* @return string 返回计算后的字符串*/
function GetNum2($num1,$tag1){$output2='';$tagNum = base_convert($num1, 16, 10);if($tag1<8){//使用pow()内置函数进行整数的求幂运算$m1 = (5*$tagNum)/(pow(2,23)-1)*10000;}else{$m1 = (20*$tagNum)/(pow(2,23)-1)*1000;}//使用内置函数floor()取整运算$m2 = sprintf("%04X",floor($m1));$output2.=$m2;return $output2;}
9.ThinkPHP去掉URL中的index.php 方法
部分解决本地无法加载的链接,和虚拟域名的实现 >>参考网址
10. 127.0.0.1和本机ip地址都无法访问
(2017-01-19 更新)
apache配置虚拟主机后,127.0.0.1和本机ip地址都无法访问,个人认为两种使用模式(ip访问和虚拟主机)不会兼容
解决方法:给 Include conf/extra/httpd-vhosts.conf 前面加个# 注释配置
不过最好配置虚拟主机。
11.防止ajax重复提交
(2017-01-21 更新)
(1).参考网址 参考一 参考二 参考三(评论)
(2).举个栗子.
//禁用或启用 function disableDelAdd(order_sn,tag) {$("#addNum-"+order_sn).attr('disabled',tag); $("#delNum-"+order_sn).attr('disabled',tag); } //检查商品库存 是否允许商品数目的增减 function checkGoodsNum(order_sn,tag,viewNum,buy_num,toUrl,checkUrl,goods_id) {var postData = {}; postData['buy_num'] = buy_num; postData['goods_id'] = goods_id; disableDelAdd(order_sn,true); $.ajax({type:"POST", url: checkUrl, data :postData, dataType : "json", success : function(result){if(result.status == 1){//成功 viewNum.val(parseInt(buy_num)); updateOrderNum(order_sn,tag,toUrl); }else{//失败 return layer.msg(result.message); }disableDelAdd(order_sn,false); }, error: function(){disableDelAdd(order_sn,false); }}); }
12.参考ajax详细写法 (ajax在微信报错)
/** * Created by 百鬼夜行 on 2017/1/21. */ $(function () {$('.test_submitorder').click(function () {var pid = $("#goods_id").val(); var spec_str = $("#carPrefixBTN").text(); var spec_id = $("#carPrefixBTN").attr("spec_id"); var mobile = $("#userTel").val(); var type = $("#type").val(); var carnumber = $("#carNUM").val(); $.ajax({url: '__APP__?m=Shopping&a=ajaxSubmitorder', cache: false, async: false, type: 'POST', data: {'mobile': mobile, 'carnumber': carnumber, 'pid': pid, 'spec_id': spec_id, 'spec_str': spec_str, 'type': type}, beforeSend: function () {//触发ajax请求开始时执行 $('#btnRecharge').text('提交订单中...'); $('#btnRecharge').removeClass('test_submitorder'); }, success: function (msg) {if (msg.status == 1) {window.location.href = ' __APP__?m=Pay&a=index' + '&oid=' + msg.data; }else {alert(msg.status); alert('网络繁忙,请稍后再试...'); $('#btnRecharge').text('立刻办理.'); $('#btnRecharge').addClass('test_submitorder'); }}, error: function (msg) {console.log(msg); alert('网络繁忙...'); $('#btnRecharge').text('立刻办理.'); $('#btnRecharge').addClass('test_submitorder'); }, complete: function (msg) {//ajax请求完成时执行 if (msg.status == 1) {$('#btnRecharge').text('立刻办理.'); $('#btnRecharge').addClass('test_submitorder'); }}}); }); });
Ajax另一种写法
//检查当前用户是否有设置默认收货地址 function toDealWithBuyerMsg(order_sn,dealWithUrl) {var postData = {}; postData['order_sn'] = order_sn; $.post(dealWithUrl, postData, function (result) {if(result.status == 1){//成功 toPayOrder(order_sn); }else{//失败 layer.msg('Sorry,默认地址未设置或不完整~'); //toAddBuyerMsg(order_sn); }},"JSON"); }
PHP 学习筆記[2] —— 自学PHP 笔记整理相关推荐
- CentOS 5.4 安裝 boost 1.4.1 筆記 - 杨毅的电子笔记
CentOS 5.4 安裝 boost 1.4.1 筆記 - 杨毅的电子笔记 CentOS 5.4 安裝 boost 1.4.1 筆記 - 杨毅的电子笔记 CentOS 5.4 安裝 boost 1. ...
- 计算机组成原理自学初学笔记整理
文章目录 *前言 1.计算机系统概述 1.1计算机概念和类型 1.2计算机的诞生与发展 1.3计算机系统的层次结构 1.4计算机性能评价指标 2.数据的表示,运算与校验 2.1数值型数据的表示 2.2 ...
- 学习韩顺平老师java io 笔记整理
一.文件 文件流 文件在程序中以留的形式来操作的 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nXoI6Vnc-1642335857608)(F:\人生苦短,我用IO ...
- SSM学习半个月后的笔记整理,希望对你有帮助
在Typora上写完搬上来的.格式可能有点怪,见谅. 目录 一.Spring 1.IOC容器----Inversion of Control Containers and the Dependency ...
- 2022.10.EEP開發筆記-1
做 IT 这么多年,一直都有工作笔记的习惯.可能是纸本,也可能是WORD档.因为 IT 真的要学很多很多东西.而且在不同公司的 IT 单位,使用不同的系统,不同的开发语言,不同的数据库.学习力太差,很 ...
- 《繁凡的深度学习笔记》前言、目录大纲 一文让你完全弄懂深度学习所有基础(DL笔记整理系列)
<繁凡的深度学习笔记>前言.目录大纲 (DL笔记整理系列) 一文弄懂深度学习所有基础 ! 3043331995@qq.com https://fanfansann.blog.csdn.ne ...
- 一文让你完全弄懂逻辑回归和分类问题实战《繁凡的深度学习笔记》第 3 章 分类问题与信息论基础(上)(DL笔记整理系列)
好吧,只好拆分为上下两篇发布了>_< 终于肝出来了,今天就是除夕夜了,祝大家新快乐!^q^ <繁凡的深度学习笔记>第 3 章 分类问题与信息论基础 (上)(逻辑回归.Softm ...
- 一文让你完全弄懂回归问题、激活函数、梯度下降和神经元模型实战《繁凡的深度学习笔记》第 2 章 回归问题与神经元模型(DL笔记整理系列)
<繁凡的深度学习笔记>第 2 章 回归问题与神经元模型(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net/ http ...
- 前端自学HTML笔记之二【超链接】
我已加入 1_bit 博主的免费前端 站起来 学习计划,专栏链接:https://blog.csdn.net/a757291228/category_11609526.html 前端自学HTML笔记二 ...
最新文章
- 13.2. Mount partition
- api 和 C# 里的接口的区别?
- python 字符串转字节数组
- python 中给文件加锁——fcntl模块
- dhcp 授权的原理
- matlab和python的语言_四大机器学习编程语言对比:R、Python、MATLAB、Octave
- android dhcp 脚本,Android adb无线调试脚本
- 导入新项目报错 Hibernate提示:No generator named ID_GENERATOR is defined in the persistence unit
- NDK-JNI实战教程(一) 在Android Studio运行第一个NDK程序
- python飞机大战素材黑马_Python基础day12飞机大战(上)
- 新浪微博页面html代码,js实现选中页面文字将其分享到新浪微博
- Redis 五大数据类型的基本命令使用
- Google浏览器安装Axure插件
- PC微信多开源代码-消息钩子+ZwQuerySystemInformation
- 【项目实战】别出心裁的小程序简历,让面试官耳目一新(第一个自己独立完成的小程序)
- Gradle build daemon disappeared unexpectedly (it may have been killed or may hav
- UGUI-- Canvas Scaler 分辨率自适应组件
- 汇编语言: txt文件操作
- MySQL 关键字模糊匹配按照匹配度排序
- android闪光灯
热门文章
- C# 操作Access的Ole对象
- BSCI官网如何下载审核图片记录?
- Python--toml配置文件
- 11月28日——培训第8天
- mysql eof_详细介绍mysql 协议的EOF包及解析
- windows关闭445.3389端口
- 新疆计算机应用能力考试,新疆维吾尔自治区中等职业学校计算机应用能力等级考试sual Basic语言程序设计机试试卷(A卷)...
- Oracle公司的历史发展
- 美国老姐看完200+中国学生SCI论文,怒写超详细“中国人英文论文写作指南”,还被推上了B站热门…...
- 如何安装和使用向日葵远程工具