首页 > 编程语言 >非常实用的PHP应用技巧

非常实用的PHP应用技巧

时间:2022-12-01 11:47:48浏览次数:60  
标签:decode return 技巧 url 实用 str PHP 函数

PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI或者Perl更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多。

1, 使用 ip2long() 和 long2ip() 函数来把 IP 地址转化成整型存储到数据库里。

这种方法把存储空间降到了接近四分之一(char(15) 的 15 个字节对整形的 4 个字节),计算一个特定的地址是不是在一个区段内页更简单了,而且加快了搜索和排序的速度(虽然有时仅仅是快了一点)。

2, 在验证 email 地址的时候使用 checkdnsrr() 函数验证域名是否存在。

这个内置函数能够确认指定的域名能够解析成 IP 地址。该函数的PHP 文档的用户评论部分有一个简单的用户自定义函数,这个函数基于 checkdnsrr(),用来验证 email 地址的合法性。对于那些认为自己的 email 地址是 [url=mailto:“[email protected]]“[email protected][/url]” 而不是 [url=mailto:“[email protected]]“[email protected][/url]” 的家伙们,这个方法可以很方便的抓住他们。

3, 如果你使用的是 PHP 5 和 MySQL 4.1 或者更高的版本,考虑抛弃 mysql_* 系列函数改用改进版的 mysqli_* 系列函数。

一个很好的功能就是你可以使用预处理语句,如果你在维护一个数据库密集型站点,这个功能能够加快查询速度。一些评估分数。

4, 学会爱上三元运算符。

5, 如果你在项目中感觉到有可复用的部分,在你写下一行代码前先看看 PEAR 中是否已经有了。

很多 PHP 程序员都知道 PEAR 是一个很好的资源库,虽然还有很多程序员不知道。这个在线资源库包含了超过 400 个可以复用的程序片段,这些程序片段你可以立即用刀你的程序里。除非说你的项目真的是非常特别的,你总能找到帮你节省时间的 PEAR 包。(参见 PECL)

6, 用 highlight_file() 来自动的打印出格式化的很漂亮的源代码。

如果你在留言板、IRC 这些地方寻求一个脚本的帮助的话,这个函数用起来非常的顺手。当然了,要小心不要意外的泄露出你的数据库连接信息和密码等。

7, 使用 error_reporting(0) 函数来防止用户看到潜在的敏感错误信息。

在理想情况下,发布服务器应该在 php.ini 里完全禁止。但是如果你用的是一个共享的 web 服务器的话,你没有自己的 php.ini 文件,那么这种情况下你最好的选择就是在所有脚本的第一行前加上 error_reporting(0);(或者使用 require_once() 方法)。这就能够在出错的时候完全屏蔽敏感的 SQL 查询语句和路径名。

8, 在网数据库中存储很大的字符串之前使用 gzcompress() 和 gzuncompress() 来显式的压缩/解压字符串。

这个 PHP 内置函数使用 gzip 算法,可以压缩普通文本达 90%。在我每次要读写 BLOB 类型的字段的时候都使用这些函数。唯一额例外就是当我需要全文检索的时候。

9, 通过“引用”传递参数的方法从一个函数中得到多个返回值。

就像三元运算符一样,大部分受过正式编程训练的程序员都知道这个技巧。但是那些 HTML 背景大于 Pascal 背景的程序员都或多或少的有过这样的疑问“在仅能使用一次 return 的情况下,从一个函数里返回多个值?”答案就是在变量前加上一个 “&” 符号,通过“引用”传递而非“值”传递。

10, 完全理解“魔术引号”和 SQL 注入的危险性。

11, PHP 换行

PHP_EOL 换行 等价于 /n

12, PHP 辨别Url

function is_url_2($url){
    if (filter_var($url, FILTER_VALIDATE_URL) !== false) {
        echo 'url 地址正确';
    }else{
        echo 'url 地址不正确';
}

13,  PHP 判断数据是否是json格式

function isJson($string) { json_decode($string); return (json_last_error() == JSON_ERROR_NONE);}
//因为 JSON_ERROR_NONE 是无错误=0。该句判断没有错误则是标准格式,返回 true;否则返回 false。

 14, PHP unicode转为utf-8

function unicode2utf8($str){
        if(!$str) return $str;
        $decode = json_decode($str);
        if($decode) return $decode;
        $str = '["' . $str . '"]';
        $decode = json_decode($str);
        if(count($decode) == 1){
                return $decode[0];
        }
        return $str;
}

 15,浏览器表单自动填充 定位

 

 

 当我们需要点击表单记录实现自动填充时,可能遇到浏览器不能识别,或者识别错误的情况,导致填充数据遗漏。

此时我们需要向需要填充的元素 添加一个参数 autocomplete="cc-exp" 如下所示。点击表单内容将向 autocomplete="cc-exp" 指向元素,填充内容

        <p class="form-row validate-required">
            <label><?php esc_html_e( 'Expiry Date', 'woocommerce-gateway-stripe' )?><span class="required">*</span></label>
            <div class="layui-input-block">
                <input id="gppDate" autocomplete="cc-exp" inputmode="numeric" onkeyup="gppUpDate('gpp')" color="" class="input-text" type="text" size="19" maxlength="7" name="gpp" placeholder="<?php esc_html_e( 'Expiry (MM/YY)', 'woocommerce' ) ?>" value="" />
            </div>
        </p>

 16:二维数组按某个键值排序


array_multisort(array_column($arr,'name'),SORT_ASC,$arr);  // 按 ‘name’ 进行升序排序 SORT_ASC 升序 SORT_DESC 降序
array_multisort(数组(一维数组),排序方式(SORT_ASC,SOTR_DESC),其他数组(可以是二维的))

其中  array_column(数组,数组中的某个键值)  从多维数组中取出某个键值的一列  返回一个一维数组;

array_multisort 函数的用法请参考: PHP array_multisort()函数超详细理解

17:php 判断字符是否是数字

1、介绍:

is_numeric() 函数用于检测变量是否为数字或数字字符串。

2、使用语法:bool is_numeric ( mixed $var )

 18:php优化技巧 =》参考

标签:decode,return,技巧,url,实用,str,PHP,函数
From: https://www.cnblogs.com/mangofish/p/16465410.html

相关文章

  • Mac 安装php7.2+和composer
    安装php7.2+操作步骤安装HomeBrew/bin/zsh-c"$(curl-fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"使用Brew安装Phpbrewinstallphp@......
  • 实战 | OpenCV带掩码(mask)的模板匹配使用技巧与演示(附源码)
    导读本文将重点介绍OpenCV带掩码(mask)的模板匹配使用技巧与演示。(公众号:OpenCV与AI深度学习) 背景介绍  在使用模板匹配时,一些特定情况中我们并不需要将整个模板图......
  • OpenCV技巧 | 二值图孔洞填充方法与实现(附源码)
    重磅干货,第一时间送达导读本文主要介绍使用OpenCV对二值图做孔洞填充的方法与实现。背景介绍为什么要做孔洞填充?因为在部分情况下,二值图内部的孔洞和外部轮廓是一个整体,填......
  • PS---抠图技巧和方法
    在做前端开发的时候,经常会遇到需要处理图片的问题,最常见的场景就是抠图,下面是几种常见的抠图方法:方法一:通道抠图第一步:打开图片,选中一个对比度比较强的通道,进行复制第......
  • thinkphp5 页面顶部空行问题
    如果再控制器末尾保留空行会导致输出的页面中也存在空行 ......
  • Installing PHP 7.2.10 on openEuler
    一、InstallingPHP7.2.10onopenEuler1安装php###dnfsearchphp###dnfinstallphp* X、OneStepSuccess1安装php-7.2.10日志查看代码[root@ecs-6568......
  • 解决常见JS问题的19个实用 ES6 片段
    在我们的开发人员工作流程中,我们经常会遇到具有挑战性的问题,这些问题可能只需要几行代码就可以解决。在本文中,我试图编译有用的片段,这些片段可能会在您处理URL、DOM、事件......
  • 分享一个PHP的远程图片抓取函数
    ​​function​​​​​​grabImage(​​​​​​$url​​​​​​,​​​​​​$filename​​​​​​=​​​​​​''​​​​​......
  • PHP上传进度条深度解析
    分析一、程序需要php的apc模块的支持,关键点就是在上传的form里添加一个hidden的inpu标签,里面要有name为APC_UPLOAD_PROGRESS的属性,value值为一个随机数一遍多个人上传。apc......
  • PHP 大文件上传进度条实现
    核心提示:目前我知道的方法有两种,一种是使用PHP的创始人RasmusLerdorf写的APC扩展模块来实现,另外一种方法是使用PECL扩展模块uploadprogress实现。目前我知道的方法有两种......