二维数组中取某一相同字段的值进行,拼接字符串

使用PHP自带的一个函数:array_column() ,该函数的作用是返回输入数组中某个单一列的值。

$firms = M('lawfirm')->where('status=1')->field('id')->select();
$firmids = array_column($firms, 'id');
$who = implode(',', $firmids);

或是通过foreach进行拼装。

Cannot use object of type PHPExcel_RichText as array

不能将富文本对象转换为数组。一般我们在上传导Excel的时候会出现此问题,问题的原因是Excel表格中有富文本对象。

解决方法1:
$student['actual_residence']=(string)$objPHPExcel->getActiveSheet()->getCell("M".$i)->getValue();
原理:将富文本对象转换为string类型。

解决方法2:
其实在PHPExcel中已经有转换的方法写好了,直接调用即可。
$objPHPExcel->getActiveSheet()->getCell("M".$i)->getValue()->__toString();

当然,最简单的方式那就直接把excel表格格式化样式即可。

DHC - REST/HTTP API Client

DHC是一款使用chrome模拟REST客户端向服务器发送测试数据的谷歌浏览器插件。
在web开发中,服务器端和客户端的开发和测试必不可少,但是测试的工作往往需要服务器端完成之后,客户端才能进行测试,这无疑延后了测试流程,导致服务器端开发完成后,无法进行充分的数据测试,很容易造成服务器端和客户端开发完成后出现不协调的情况,而今天给大家推荐的这款HTTP工具,可以提前对服务器端代码进行测试。
DHC是一款可以帮助用户使用chrome插件模拟HTTP客户端发送测试数据到服务器的谷歌浏览器插件,在chrome中安装了DHC插件以后,就可在服务器端代码初步完成的时候,使用DHC进行数据测试,以便更早地了解到程序的BUG和需求。DHC插件的使用方式也非常简单,只需要输入服务器端的地址,以及发送的方式和数据内容,就可以向服务器端发送指定的数据,并获取服务器端的返回值。

DHC-REST-HTTP-API-Client_v0.8.1.1.rar

HTML5 获取当前位置的经纬度调用百度地图导航

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title>GO</title>
</head>
<body>
    <h1>WAITING ...</h1>
</body>
<script>
    window.onload=function(){
        getLocation();
        go();
    }

    function getLocation(){
        if (navigator.geolocation){
            navigator.geolocation.getCurrentPosition(showPosition);
        }else{
            x.innerHTML="Geolocation is not supported by this browser.";
        }
    }
    function showPosition(position){
        // alert(position.coords.latitude+","+position.coords.longitude);
    }
    
    function go(){
       if (navigator.geolocation){
           navigator.geolocation.getCurrentPosition(comeOn);
       }else{
           x.innerHTML="Geolocation is not supported by this browser.";
       }
    }
    function comeOn(position){
        window.location.href="http://api.map.baidu.com/direction?origin=latlng:"+position.coords.latitude+","+position.coords.longitude+"|name:我的位置&destination=风筝博物馆&mode=driving&region=潍坊&output=html&src=zhinizhiwo.com|icecry";
    }
    
 </script>
</html>

wamp升级php5.5.12到5.6.30

最近计划入坑Laravel,无奈php>5.6,现用wamp为5.5.12,升级。

1.下载php5.6.30 VC11 x64 Thread Safe,http://windows.php.net/download/
2.wamp/bin/php目录创建php5.6.30目录并复制文件
3.复制php5.5.12下的php.ini、phpForApache.ini、wampserver.conf至php5.6.30目录 下,并将php.ini、phpForApache.ini中的5.5.12全部替换成5.6.30
注:也可复制php.ini-development文件,修改后保存为php.ini及phpForApache.ini
4.删除wamp\bin\apache\apache2.4.9\bin下的php.ini文件
5.wamp中重启服务,此时php版本只显示5.5.12,点击重启,便可出现5.6.30版本,选择。
备注:php5.6以上版本,curl拓展开启问题
php.ini中 ;extension=php_curl.dll 前的;已经去除,但仍提示curl未开启
解决办法:将php安装目录下的libssh2.dll复制到apache的bin目录,并重新启动apache

浏览器同源策略以及跨域手段

同源策略(Same origin policy)

同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。

那问题来了,如何合法规避浏览器的同源策略呢

跨域资源共享(CORS)

服务器端添加 Header 头信息,指定允许访问的源

以 PHP 语言为例

header("Access-Control-Allow-Origin: http://www.codefun.cn");
header("Access-Control-Allow-Credentials: true");
例如,上面的字段值将允许来自 http://www.codefun.cn 的请求

form表单中提示其中某项为空选项

思路:循环遍历不能为空的数据进行判断,提示对应的label

var check = true;
mui("#input_example input").each(function() {
    //若当前input为空,则alert提醒  
    if(!this.value || this.value.trim() == "") {
        var label = this.previousElementSibling;
        mui.alert(label.innerText + "不允许为空");
        check = false;
        return false;
    }
}); //校验通过,继续执行业务逻辑 
if(check){
    mui.alert('验证通过!')
}