背景:自学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);//如果去掉最后一个参数或者为“ ”,默认连接本机
有时php包含php文件时,发现可能会有编码的问题
----------------2016/2/29 (记录)
分析得出,个人在QQ互联中的网站地址写的与默认连接不一致,保证了回调地址的正确以后,进行测试发现正常。
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);
}
}
这两天,在学些LAMP的一点知识,主要记录一些问题在此,希望给遇到相同困扰的人一点参考。---2016.5.25
windows环境下的PHP学习,算是有一点基础了,但毕竟是自学,所以自己的学些规划不够清晰,意识到必须学习Linux系统下的相关知识才行。前几天安装了VMware,并且安装了Ubuntu,CentOS6.5,Deepin三种系统,具体的安装也是参考网络上的图解,其中值得注意的几点是:
·win10环境下的VMware安转和运行时,尽量选择 管理员权限
·Linux系统的选择,各有各的优点吧,个人觉得Deepin是界面最好看的,记得设置用户名和密码
·发现升级为win10系统后,自己所装的虚拟机都不能上网了,后来在VMware->编辑->虚拟网络编辑器 中点击了左下角的“恢复默认设置”,测试发现问题解决
·多数问题,可以百度来的就自己解决,毕竟自己找错误的就是很好的学习。
今天在使用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 即可。
部分解决本地无法加载的链接,和虚拟域名的实现 >>参考网址
(2017-01-19 更新)
apache配置虚拟主机后,127.0.0.1和本机ip地址都无法访问,个人认为两种使用模式(ip访问和虚拟主机)不会兼容
解决方法:给 Include conf/extra/httpd-vhosts.conf 前面加个# 注释配置
不过最好配置虚拟主机。
(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); } }); }
/**
* 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");
}