PHP与UTF-8的最佳实践_PHP设置字符编码为UTF-8
shinyuu PHP开发教程 4490 0 2019-02-20 14:39:25

《PHP中的字符串、编码、UTF-8》一文中描述了一些列的基础知识,比较枯燥,现在来说点有用的——PHP 字符串处理的最佳实践,本文是“PHP、字符串、编码、UTF-8”相关知识的第二部分。先说结论——在 PHP 中的各个方面使用 UTF-8编码。 PHP 语言层面是不支持 Unicode字符集的,但是可以通过 UTF-8 编码能处理大部分问题。最佳实践就是明确知道输入编码(不知道就检测),内部统一转换为 UTF-8 编码,输出编码也统一是 UTF-8编码。 PHP 层面如何处理 UTF-8 当操作 Unicode 字符集的时候,...

阅读全文

PHP类的自动载入机制_PHP面向对象之类的自动加载
shinyuu PHP开发教程 4350 1 2018-06-08 14:08:03

php的自动加载: 在php5以前,我们要用某个类或类的方法,那必须include或者require,之后才能使用,每次用一个类,都需要写一条include,麻烦。php作者想简单点,最好能引用一个类时,如果当前没有include进来,系统能自动去找到该类,自动引进~ 于是:__autoload()函数应运而生。通常放在应用程序入口类里面,比如discuz中,放在class_core.php中。 先讲浅显的例子: 第一种情况:文件A.php中内容如下<?phpclass A{ public function __con...

阅读全文

PHP实现多进程_PHP利用多进程处理任务
shinyuu PHP开发教程 5456 1 2018-05-25 13:37:02

一、准备 我们都知道PHP是单进程执行的,PHP处理多并发主要是依赖服务器或PHP-FPM的多进程及它们进程的复用,但PHP实现多进程也意义重大,尤其是在后台Cli模式下处理大量数据或运行后台DEMON守护进程时,多进程的优势不用多说。 PHP的多线程也曾被人提及,但进程内多线程资源共享和分配的问题难以解决。PHP也有多线程想关的扩展 pthreads ,但据说不太稳定,且要求环境为线程安全,所用不多。 以前PHP群里的一位大神曾指导说后台PHP想进阶必然避不开多进程,正好公司里的守护进程也应用了PHP的多进程,...

阅读全文

搞清FastCgi与PHP-fpm之间的关系
shinyuu PHP开发教程 3033 0 2018-05-04 14:16:50

问题:网上有的说,fastcgi是一个协议,php-fpm实现了这个协议; 有的说,php-fpm是fastcgi进程的管理器,用来管理fastcgi进程的; 有的说,php-fpm是php内核的一个补丁; 有的说,修改了php.ini配置文件后,没办法平滑重启,所以就诞生了php-fpm; 还有的说PHP-CGI是PHP自带的FastCGI管理器。 首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。 web server(比如说nginx)只是内容的分发者。比如,如果...

阅读全文

PHP递归读取目录文件_递归遍历文件以及文件夹
shinyuu PHP开发教程 5390 0 2018-03-27 13:13:11

这篇文章主要介绍了PHP遍历目录文件的常用方法,结合实例形式总结分析了php针对文件与目录的常用遍历技巧与运行效率,具有一定参考借鉴价值,需要的朋友可以参考下。<?php//递归遍历文件夹及其子目录//遍历文件夹及其子目录/* * 遍历指定文件夹下的所有文件 * @param1 string $dir,需要遍历的路径*/function myScandir($dir){ //取出$dir中的所有文件 $files = scandir($dir); //遍历输出 foreach($files as $fi...

阅读全文

thinkphp框架下404页面设置_thinkphp设置错误页面
shinyuu PHP开发教程 4559 0 2017-12-20 14:42:20

404页面即系统在找不到请求的操作方法和找不到请求的控制器名称时的一种报错行为的优化。 第一步:在thinkphp框架中的Home/Comtroller中建一个EmptyController.class.php,其代码如下: <?phpnamespace HomeController;use ThinkController;class EmptyController extends Controller{   //空操作_empty()方法 function _empty(){ header("...

阅读全文

PHP生成器的使用_PHP中性能优化之生成器
shinyuu PHP开发教程 3147 1 2017-12-13 13:35:20

PHP生成器是5.5.0引入的功能,生成器实际上就是简单的迭代器。生成器会根据需求计算产出迭代的值,而标准的PHP迭代器经常在内存中执行迭代操作,这要预先计算出数据集,性能较低。如果使用特定的防护计算大量数据,可以使用生成器,即时计算并产出后续值,不占用内存。 创建生成器 生成器从不返回值,只是产出值。<?php function myGenerator() { yield ´v1´; yield ´v2´; yield ´v3´...

阅读全文

PHP中如何设置error_reporting错误报告级别
shinyuu PHP开发教程 3936 0 2017-12-08 13:47:21

错误报告级别:指定了在什么情况下,脚本代码中的错误(这里的错误是广义的错误,包括E_NOTICE注意、E_WARNING警告、E_ERROR致命错误等)会以错误报告的形式输出。 设置错误报告级别的方法: 1. 修改PHP的配置文件php.ini 这种方式设置error_reporting后,重启web服务器,就会永久生效。 这里以xampp集成软件包为例,打开配置文件php.ini,查看错误报告级别error_reporting的默认值,如下: error_reporting=E_ALL & ~E_DEPRECATED ...

阅读全文

php允许ajax跨域请求_ajax跨域往php程序post数据时执行两次的解决方法
shinyuu PHP开发教程 4688 0 2017-12-04 13:40:48

php程序是部署在IIS7上面,ajax提交数据时,遇到了两个问题,一个就是跨域,一个php程序总会被执行两次。 第一个问题的解决方法,是百度出来的,添加下面几行代码就可以了: header(´Access-Control-Allow-Origin:*´);header("Access-Control-Allow-Headers: x-requested-with,content-type");header(´Access-Control-Allow-Methods: OPTIONS,POST,...

阅读全文

用php编写一个排序算法_php四种基础排序算法的运行时间比较
shinyuu PHP开发教程 4285 0 2017-11-28 14:07:28

本文为大家总结一下所有的php的排序方式!有冒泡排序法,选择排序法,插入排序法,快速排序法等方法。在最后分别用不同的方法总结一下调用时间。 冒泡排序法/** * php四种基础排序算法的运行时间比较 * @authors Jesse ([email protected]) * @date 2016-08-11 07:12:14 *///冒泡排序法function bubbleSort($array){ $temp = 0; for($i = 0;$i < count($array) -1;$i ){ ...

阅读全文

PHP分支控制语句_PHP流程控制结构之分支结构
shinyuu PHP开发教程 5529 1 2017-11-07 13:40:16

流程控制对于任何一门编程语言来说都是具有通用与普遍性的,是程序的重要组成部分。可以这么说,在任何一门程序设计语言中,都需要支持三种基本结构:顺序结构、分支结构(选择结构或条件结构)和循环结构。对于顺序结构,主要是赋值语句和输入/输出语句等,即按次序执行,这里没什么好说的。这里,笔者重点总结一下分支结构和循环结构。 分支结构 分支结构是程序在执行过程中依照需求条件来改变程序执行的顺序。即满足条件时就执行某一叙述块,反之则执行另一叙述块。在程序中使用分支结构可以有以下几种形式: 单一条件分支结构 双向条件分支结构 多向条件分支结构 巢...

阅读全文

PHP接口定义_PHP抽象类以及接口定义
shinyuu PHP开发教程 4589 1 2017-09-14 14:21:42

这里先介绍接口,因为在我最近看的好几本php工具书中都没有提到抽象类、本人也觉得,在理解了接口后抽象类也非常好理解。 例子代码随便写了一下。例子代码是很ok的,测试过了不会报错,懒得看代码的筒靴们看文字一样。栗子举的不好 代码测试环境:php5.3.29 接口(interface): 接口就是为抽象而生的,相当于一个约定或规范,方便框架搭建,代码分工、它里面指定了抽象方法的名称和参数和成员常量,但不能包含任何的具体方法,变量、个人认为php是弱类型语言,强调的是灵活性。与java相比php里的接口对类型要求太松弛。不大好用,不推荐...

阅读全文

PHP处理.CSV文件_读取CSV文件的内容
shinyuu PHP开发教程 6249 0 2017-08-23 14:53:12

CSV文件以纯文本形式存储表格数据、所以我们通过PHP数组能够较为容易地对CSV中的数据进行读写、这里我们就来看一下PHP处理CSV表格文件的常用操作方法总结 要做在线Excel表格编辑功能,Excel的xls文件格式的解析就是个问题,毕竟这是微软Office的私有专利格式、所以要做的话还是用通用的csv(Comma Separated Value,逗号分隔值)格式吧、各种办公软件都能识别csv表格,其实就是以特定分隔符(比如逗号)分隔单元格的表格 拿PHP来说,fgetcsv读入csv表格,返回一个数组、然后foreach输出成H...

阅读全文

PHP使用PDO如何防止SQL注入_PDO防止SQL注入原理
shinyuu PHP开发教程 5319 0 2017-08-15 13:21:27

PDO是PHP的一个扩展,使用PDO扩展可以连接不同类型的数据库系统,但是我们还是需要自己编写SQL语句,这就意味着SQL安全由开发人员掌控。传统的mysql_connect 、mysql_query方法存在很多注入风险,而使用PDO预处理机制可以有效的防止SQL注入风险 连接数据库 现在我们需要连接到一个名为testdb的MySQL数据库,这个数据库的IP地址是127.0.0.1,监听端口默认3306,数据库的用户名是yueguang,密码是hii12356,连接使用字符集是utf8。以下是连接代码<?php $dsn =...

阅读全文

PHP流程控制结构_PHP分支结构语句
shinyuu PHP开发教程 4878 0 2017-08-14 13:56:08

流程控制对于任何一门编程语言来说都是具有通用与普遍性的、是程序的重要组成部分、可以这么说、在任何一门程序设计语言中、都需要支持三种基本结构:顺序结构、分支结构(选择结构或条件结构)和循环结构、对于顺序结构、主要是赋值语句和输入/输出语句等、即按次序执行、这里没什么好说的、这里、笔者重点总结一下分支结构和循环结构 分支结构 分支结构是程序在执行过程中依照需求条件来改变程序执行的顺序、即满足条件时就执行某一叙述块、反之则执行另一叙述块、在程序中使用分支结构可以有以下几种形式: 单一条件分支结构 双向条件分支结构 多向条件分支结构 巢状...

阅读全文

DD记账
top
+