当前位置:  编程技术>php
本页文章导读:
    ▪PHP发短信 PEAR 包:Services_Sms - sink_cup      PHP发短信 PEAR 包:Services_Sms对于这种第三方库,PHP官方称之为PEAR,需要按照PEAR标准开发(标准URI)。PEAR的优势:一键安装到php/lib/php目录,require即可使用,很方便。由于项目要发短信,所以.........
    ▪JoshChen_php新手进阶高手不可或缺的规范 - Josh_Chen      如题,生物界中任何东西都需要成长,而成长却也分为两种,一种是邪恶的成长,一种是健康的成长。程序员也是一样的,当我们在成长的时候,必须提前知道规范,从而形成健康的成长,否.........
    ▪php读取mysql中文数据出现乱码的解决方法 - 漫步在互联网      php读取mysql中文数据出现乱码问题的解决方法。 1.PHP页面语言本身的编码类型不合适,这时候,你直接在脚本中写的中文肯定是乱码,不用说数据库了解决方法:选择'UTF8'或者'gb2312',这样客.........

[1]PHP发短信 PEAR 包:Services_Sms - sink_cup
    来源:    发布时间: 2013-11-07

PHP发短信 PEAR 包:Services_Sms

对于这种第三方库,PHP官方称之为PEAR,需要按照PEAR标准开发(标准URI)。

PEAR的优势:一键安装到php/lib/php目录,require即可使用,很方便。

由于项目要发短信,所以我开发了一个,现在整理开源出来。安装步骤如下:

pear channel-discover sinkcup.github.io/pear
pear install sinkcup/Services_Sms

0.0.1版支持下列短信服务商:

移通网络:http://www.etonenet.com/

短信宝:http://smsbao.com/

互亿无限:http://ihuyi.com/

使用步骤:

1、到短信服务商网站注册一个帐号,比如移通网络(http://www.etonenet.com/)。

2、demo(参考https://github.com/sinkcup/Services_Sms/blob/master/tests/Services/SmsTest.php):

<?php
require_once 'Services/Sms.php';
$conf = array(
'spid' => 'foo',
'sppassword' => 'bar',
'apiUriPrefix' => 'http://esms.etonenet.com/',
);
$c = new Services_Sms('etonenet', $conf);
$r = $c->send('13800138000', 'Hello!树先生 etonenet');
var_dump($r);
exit;
?>

源代码:https://github.com/sinkcup/Services_Sms

sinkcup PEAR 频道:http://sinkcup.github.io/pear/

 


本文链接:http://www.cnblogs.com/sink_cup/p/PHP-PEAR-Services_Sms.html,转载请注明。


    
[2]JoshChen_php新手进阶高手不可或缺的规范 - Josh_Chen
    来源:    发布时间: 2013-11-07

如题,生物界中任何东西都需要成长,而成长却也分为两种,一种是邪恶的成长,一种是健康的成长。

程序员也是一样的,当我们在成长的时候,必须提前知道规范,从而形成健康的成长,否则养成了大的恶习之后,再后悔却是如此的痛苦了。

所以,今天就整理了一下PHP的规范,让大家参考参考。就像大家常说的一句话,“规矩是死的,人是活的。”。是的,但是,在规矩中成长的人都会拥有一堆非常让人羡慕的好习惯。

 

PHP规范

1. 为什么要编码规范

  • 编码规范(code conventions)对于程序员而言尤为重要,有以下几个原因:
  • 在一个软件的生命周期中,80%的花费用于维护。
  • 几乎没有任何一个软件在其整个生命周期中均由最初的开发人员来维护。
  • 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码。
  • 如果将源码作为产品发布,就需要确认它是否被很好地打包并且清晰无误,和其他已构建的任何产品一样。
  • 2. 概要

      • 用四个空格代替tab缩进。
      • 去掉PHP文件底部的“?>”。
      • 每行程序一般少于80字符,超出部分,分成多行书写。
      • 每行只写一条语句,不允许把多个短语句写在一行中。
      • 应为文件和函数添加注释。
      • 应及时删除废除的注释代码。
      • 变量、函数的命名应规范。

    3. 编辑器设定

    3.1. 缩进

    所有的缩进使用空格取代Tab制表符。PHP文件采用4个空格的缩进,HTML文件以及HTML文件中嵌入的Javascript代码采用2个空格的缩进;单独的 Javascript以及CSS文件采用4个空格的缩进。

    3.2. 字符编码

    所有PHP、HTML文件均保存为No Bom UTF-8的字符编码。

    4. 代码布局

    4.1. 文件底部

    去掉文件底部 “?>”。

    4.2. 相对独立的程序块之间、变量说明之后必须加空行

    示例:如下例子不符合规范

    if (!$valid_ni()){
    ... // program code
    }
    $repssn_ind = $ssn_data[’index’]->repssn_index;
    $repssn_ni = $ssn_data[’index’]->ni;

    应如下书写:

    if (!valid_ni(){
    ... // program code
    }

    $repssn_ind = $ssn_data[’index]->repssn_index;
    $repssn_ni = $ssn_data[index]->ni;

     

    4.3. 较长的语句要分成多行书写

    一行程序需小于80字符

    较长的语句要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。

    循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首示例:

    $perm_count_msg->len = NO7_TO_STAT_PERM_COUNT_LEN
    + STAT_SIZE_PER_FRAM * strlen( $len );

    $act_task_table[$frame_id * STAT_TASK_CHECK_NUMBER + $index]->occupied
    = $stat_poi[index]->occupied;

    $act_task_table[taskno]->duration_true_or_false
    = sys_get_sccp_statistic_state( $stat_item );

    if (($taskno < $max_act_task_number)
    && (n7stat_stat_item_valid ($stat_item))){
    ... // program code
    }

    for ($i = 0, $j = 0; ($i < $bufferKeyword[’word_index’]->word_length)
    && ($j < new_keyword->word_length); $i++, $j++){
    ... // program code
    }

     

    4.4. 一行只写一条语句

    不允许把多个短语句写在一行中,即一行只写一条语句。示例:如下例子不符合规范

    $rect->length = 0; $rect->width = 0;

    应如下书写:

    $rect->length = 0;$rect->width = 0;

    4.5. 始终包含大括号

    这是因为懒于多敲两个字符而给代码清晰带来问题的又一个情形。

    示例:如下例子不符合规范

    if ($condition) do_stuff();
    if ($condition)
    do_stuff();
    while ($condition)
    do_stuff();
    for ($i = 0; $i < $size; $i++)
    do_stuff($i);

    应如下书写

    if (condition){
    do_stuff();
    }
    while ($condition){
    do_stuff();
    }
    for ($i = 0; $i < $size; $i++){
    do_stuff();
    }

     

    4.6. switch写法

    示例:如下例子符合规范

    switch (){
    case ‘1’:
    ..program
    break;
    case ‘2’:
    ..program
    break;
    }

    4.7. 大括号放在哪儿

    程序块的分界符(大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。

    而在函数体的开始、类的定义、以及if、for、do、while、switch、case语句中的右大括号应放在行尾, 左大括号应与右大括号所在行的行首处在同一列

    示例:如下例子不符合规范

    for (...)
    {
    ... // program code
    }

    if (...)
    {
    ... // program code
    }

    function example_fun()
    {
    ... // program code
    }
    应如下书写:for (...){
    ... // program code
    }

    if (...){
    ... // program code
    }

    function example_fun(){
    ... // program code
    }

     

    4.8. 符号之间使用空格

    采用这种松散方式编写代码的目的是使代码更加清晰。

    由于留空格所产生的清晰性是相对的,所以,在已经非常清晰的语句中没有必要再留空格,如果语句已足够清晰则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格。在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。给操作符留空格时不要连续留两个以上空格。

    示例:如下例子不符合规范

    $i=0;
    if($i<7) ...
    if ( ($i < 7)&&($j > 8) ) ...
    for($i=0; $i<$size; $i++) ...
    $i=($j < $size)?0:1;
    do_stuff( $i, "foo", $b );

     

    应如下书写:

    $i = 0;
    if ($i < 7) ...
    if (($i < 7) && ($j > 8)) ...
    for ($i = 0; $i < $size; $i++) ...
    $i = ($j < $size) ? 0 : 1;
    do_stuff($i, "foo", $b);

     

    4.9. 字符串连接符

    当使用字符串连接符时必须在句点(.)两侧加上空格。

    示例:如下例子不符合规范

    $str = ‘<img src=/blog_article/”’.$thumb_url.’” />’;
    $str = ‘<img src=/blog_article/”’/index.html .$thumb_url. ‘”/>’;
    应如下书写:$str = ‘<img src=/blog_article/”’/index.html . $thumb_url . ‘” />’;

     

    4.10. 空行的使用

    谁也不愿意看到挤在一堆的无序的代码。我们在写代码的时候总是会利用一些空行来增加代码可读性。合理的利用空格来区分代码段会使代码的逻辑思路更加明确。我们强行规定的空行有以下两种情况:

    • <?php 之后必须有且只有1个空行
    • ?> 之前必须有且只有1个空行
    • 两个函数之间必须有1个空行。
    • return、die、exit之前如果有其他语句的情况下应加上一个空行。

    在代码中我们不允许在行尾有多余的空格。

    5. 注释

    5.1. 文件头部模板

    /**
    * ShopEx网上商店 文件中文名称
    * 类或者文件的说明,此处可以使用html
    *
    * @package
    * @version $Id$
    * @copyright 2003-2008 Shanghai ShopEx Network Tech. Co., Ltd.
    * @license Commercial
    * =================================================================
    * 版权所有 (C) 2003-2009 上海商派网络科技有限公司,并保留所有权利。
    * 网站地址:http://www.shopex.cn/
    * -----------------------------------------------------------------
    * 您只能在不用于商业目的的前提下对程序代码进行修改和使用;
    * 不允许对程序代码以任何形式任何目的的再发布。
    * =================================================================
    */

    5.2. 函数头部注释

    每个函数之前应当有注释,告诉一个程序员使用这个函数所需要知道的事情。一个最小化的注释应包括:每个参数的意义,期望的输入,函数的输出。注释还应当给出在错误条件下(还有具体是什么错误条件)这个函数的行为。(注释应该确保)其他人不必察看这个函数的代码,就可以自信地在自己的代码中调用这个函数。

    另外,为任何技巧性的,晦涩的或者并非显而易见的代码添加注释,无疑是我们应该做的事情。对文档尤其重要的是你的代码所做的任何假设,或者它正确

        
    [3]php读取mysql中文数据出现乱码的解决方法 - 漫步在互联网
        来源:    发布时间: 2013-11-07

    php读取mysql中文数据出现乱码问题的解决方法。


    1.PHP页面语言本身的编码类型不合适,这时候,你直接在脚本中写的中文肯定是乱码,不用说数据库了

    解决方法:
    选择'UTF8'或者'gb2312',这样客户浏览器会自动选择并出现正确的中文显示。注意:'UTF8'或者'gb2312'都可以正确显示中文的。

    2.数据库MySQL中的编码类型不正确。

    解决方法:
    创建数据库的时候,MySQL 字符集选择'UTF8',MySQL 连接校对选择utf8_general_ci,这样创建的数据库用来存储中文肯定没有问题,
    否则,你的中文首先在MySQL中就是乱码,更不要期望它会给你在PHP页面中显示正确。

    3.与平时的脚本编辑环境有关。比如,有些内容是自己用word写的,有些是用记事本写的,有些用editplus、ultraplus等文本编辑器。有时候就直接在DW中写中文了,

    解决方法:
    尽量用同一种编辑器。如果是拷贝来得既有的内容,建议用ultraplus中的编码转换功能把它转换成utf8或者gb2312。

    到底转换成什么类型并不重要,关键要求你的PHP WEB应用程序中的编码要一致就行。

    4.编程访问 MySQL时,建议添加一行代码:mysql_query("SET NAMES 'GBK'");


    本文链接:http://www.cnblogs.com/cfinder010/p/3261897.html,转载请注明。


        
    最新技术文章:
    ▪PHP函数microtime()时间戳的定义与用法
    ▪PHP单一入口之apache配置内容
    ▪PHP数组排序方法总结(收藏)
    ▪php数组排序方法大全(脚本学堂整理奉献)
    ▪php数组排序的几个函数(附实例)
    ▪php二维数组排序(实例)
    ▪php根据键值对二维数组排序的小例子
    ▪php验证码(附截图)
    ▪php数组长度的获取方法(三个实例)
    ▪php获取数组长度的方法举例
    ▪判断php数组维度(php数组长度)的方法
    ▪php获取图片的exif信息的示例代码
    ▪PHP 数组key长度对性能的影响实例分析
    ▪php函数指定默认值的方法示例
    ▪php提交表单到当前页面、提交表单后页面重定...
    ▪php四舍五入的三种实现方法
    ▪php获得数组长度(元素个数)的方法
    ▪php日期函数的简单示例代码
    ▪php数学函数的简单示例代码
    ▪php字符串函数的简单示例代码
    ▪php文件下载代码(多浏览器兼容、支持中文文...
    ▪php实现文件下载、支持中文文件名的示例代码...
    ▪php文件下载(防止中文文件名乱码)的示例代码
    ▪解决PHP文件下载时中文文件名乱码的问题
    ▪php数组去重(一维、二维数组去重)的简单示例
    ▪php小数点后取两位的三种实现方法
    ▪php Redis 队列服务的简单示例
    ▪PHP导出excel时数字变为科学计数的解决方法
    ▪PHP数组根据值获取Key的简单示例
    ▪php数组去重的函数代码示例
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3