首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

40+个对初学者非常有用的PHP技巧(二)

13.在写入任何文件之前检查目录是否可写 在写入或保存任何文件之前,请务必要检查该目录是否是可写的,如果不可写的话,会闪烁错误消息。这将节省你大量的“调试”时间。...当你工作于Linux时,权限是必须要处理的,并且会有很多很多的权限问题时,当目录不可写文件无法读取等的时候。 请确保你的应用程序尽可能智能化,并在最短的时间内报告最重要的信息。 ? 这完全正确。...因此,用包装函数使用应用程序特定键: ? 18.封装实用辅助函数到一个类中 所以,你必须在一个文件中有很多实用函数: ? 自由地在应用程序中使用函数。...23.使用set_error_handler()将Php错误写入到文件 set_error_handler()可以用来设置自定义的错误处理程序。在文件中编写一些重要的错误用于日志是个好主意。...25.在整个脚本中使用单一的数据库连接 请确保你在整个脚本使用单一的数据库连接。从一开始就打开连接,使用至结束,并在结束时关闭它。不要像这样在函数内打开连接: ?

1.1K10

PHP SOCKET编程

特别是php的socket扩展库可以做的事情简直不会比c差多少。 php的socket连接函数 1、集成于内核的socket 这个系列的函数仅仅只能做主动连接无法实现端口监听相关的功能。...fgets(),fwrite(), fclose()等单注意的是所有函数遵循这些函数面对网络信息时的规律,例如: fread() 从文件指针 handle 读取最多 length 个字节。...该函数在读取完 length 个字节数,或到达 EOF 的时候,或(对于网络)当一个包可用时就会停止读取文件,视乎先碰到哪种情况。...当打开这个此模块以后就意味着php拥有了强大的socket功能,包括listen端口,阻塞及非阻塞模式的切换,multi-client 交互式处理等 这个系列的函数列表参看http://www.php.net...另外有一些场景多进程模型无法解决,比如即时聊天程序(IM),一台服务器要同时维持上万甚至几十万上百万的连接(经典的C10K问题),多进程模型就力不从心了。 还有一种场景也是多进程模型的软肋。

1K20
您找到你想要的搜索结果了吗?
是的
没有找到

php的各种 IO 以及用法

; 可看到,上面使用了php://stdin 协议,打开了一个标准输入的操作句柄,然后可读取用户在控制台输入的数据 上面的代码也可写成: <?...; STDIN常量是一个已经打开的stdin,可节省几行代码,也可节省小部分打开stdin的性能 当然,值得注意的点是: 1:php://stdin打开的其实是STDIN常量已经打开的复制,所以就算关闭了...,作用和echo相同,但是实现方式不一样 STDERR 标准错误 STRERR 标准错误和STDOUT差不多,都是将字符串默认打印到控制台(可使用freopen重定向到文件),但是这个是打印错误用的,区分就是...://input 从这里开始,就和上面的3个程序标准I/O关系不大啦,咱们继续往下看,该部分参考:http://www.nowamagic.net/academy/detail/12220520,有时间可详细阅读...php://memory 和 php://temp 是一个类似文件 包装器的数据,允许读写临时数据。

1.4K21

基于PHP常用文件函数和目录函数整理

如果 filename 是符号连接,则统计信息是关于被连接文件本身的,而不是符号连接。 //lstat() 和 stat() 相同,只除了它会返回符号连接的状态。...'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。...php // 将一个文件读入数组。本例中通过 HTTP 从 URL 中取得 HTML 源文件。...参数:handle : 文件指针必须是有效的,且必须指向一个通过 fopen() 或 popen() 成功打开文件。在附加模式(加参数 "a" 打开文件)中 ftell() 会返回未定义错误。...2、LOCK_EX 取得独占锁定(写入的程序。 3、LOCK_UN 释放锁定(无论共享或独占)。 如果不希望 flock() 在锁定时堵塞,则是 LOCK_NB(Windows 上还不支持)。

63630

一文学会 Node.js 中的

这种方式使流在处理大量数据时非常强大,例如,文件的大小可能大于可用的内存空间,从而无法将整个文件读入内存进行处理。那是的用武之地! 既能用流来处理较小的数据块,也可以读取较大的文件。...每当使用 Express 时,你都在使用与客户端进行交互,而且由于 TCP 套接字、TLS栈和其他连接都基于 Node.js,所以在每个可以使用的数据库连接驱动的程序中使用。...请切记不要将异步功能与 EventEmitter 混合使用,因为当前在事件处理程序中发出拒绝时,无法捕获拒绝,从而导致难以跟踪错误和内存泄漏。...目前的最佳实践是始终将异步函数的内容包装在 try/catch 块中并处理错误,但这很容易出错。...fs.createWriteStream() 创建可写文件 net.connect() 启动基于连接 http.request() 返回 http.ClientRequest 类的实例,它是可写

2.3K30

phpphp.ini配置文件讲解案例

你可以使用输出缓存在运行时打开输出缓存,  ; 或者在这里将指示设为 On 而使得所有文件的输出缓存打开。 ...display_startup_errors = Off ; 甚至当display_erroes打开了,发生于PHP的启动的步骤中  ; 的错误也不会被显示。 ...页面的根路径,仅在非空时有效  user_dir = ; 告知 php 在使用 /~username 打开脚本时到哪个目录下去找,仅在非空时有效  ;upload_tmp_dir = ; 存放用HTTP...协议上载文件的临时目录(在没指定时使用系统默认的)  upload_max_filesize = 2097152 ; 文件上载默认地限制为2 Meg  extension_dir = c:\php\...方式文件上载  ;upload_tmp_dir = ; 用于HTTP上载文件的临时目录(未指定则使用系统默认)  upload_max_filesize = 2M ; 上载文件的最大许可大小 ; Fopen

1.4K00

PHP配置文件详解php.ini

你可以使用输出缓存在运行时打开输出缓存, ; 或者在这里将指示设为 On 而使得所有文件的输出缓存打开。...display_startup_errors = Off ; 甚至当display_erroes打开了,发生于PHP的启动的步骤中 ; 的错误也不会被显示。...页面的根路径,仅在非空时有效 user_dir = ; 告知 php 在使用 /~username 打开脚本时到哪个目录下去找,仅在非空时有效 ;upload_tmp_dir = ; 存放用HTTP协议上载文件的临时目录...(在没指定时使用系统默认的) upload_max_filesize = 2097152 ; 文件上载默认地限制为2 Meg extension_dir = c:\php\ ; 存放可加载的扩充库(模块...方式文件上载 ;upload_tmp_dir = ; 用于HTTP上载文件的临时目录(未指定则使用系统默认) upload_max_filesize = 2M ; 上载文件的最大许可大小 ; Fopen

2K10

腾讯php面试题之 – PHP开发工程师笔试试卷

无法准确判断一个目录/文件是否可写,请写一个函数来判断目录/文件是否绝对可写 答:其中bug存在两个方面, 1、在windowns中,当文件只有只读属性时,is_writeable()函数才返回false...,当返回true时,该文件不一定是可写的。...如果是目录,在目录中新建文件并通过打开文件来判断; 如果是文件,可以通过打开文件(fopen),来测试文件是否可写。...500 (服务器内部错误) 服务器遇到错误无法完成请求。 501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。...505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

1K10

PHP 配置文件详解(php.ini 详解 )

你可以使用输出缓存在运行时打开输出缓存, 或者在这里将指示设为 On 而使得所有文件的输出缓存打开。...display_startup_errors = Off ; 甚至当display_erroes打开了,发生于PHP的启动的步骤中 ; 的错误也不会被显示。...页面的根路径,仅在非空时有效 user_dir = ; 告知 php 在使用 /~username 打开脚本时到哪个目录下去找,仅在非空时有效 ;upload_tmp_dir = ; 存放用HTTP...协议上载文件的临时目录(在没指定时使用系统默认的) upload_max_filesize = 2097152 ; 文件上载默认地限制为2 Meg extension_dir = c:\php\...方式文件上载 ;upload_tmp_dir = ; 用于HTTP上载文件的临时目录(未指定则使用系统默认) upload_max_filesize = 2M ; 上载文件的最大许可大小 ; Fopen

4.5K30

drupal安装教程mysql_Drupal7安装完整教程

Drupal7 史前准备工作(安装 AppServ) AppServ 是 PHP 网页架站工具组合包,作者将一些网络上免费的架站资源重新包装成单一的安装程序,以方便初学者快速完成架站,AppServ 所包含的软件有...设置权限: 如果是 Linux 平台,请将 files 目录的权限设置为 777,settings.php 设置为 web 服务器用户可写,如果不清楚,也可先设置为 777。...修改 C:\Windows\php.ini 文件: extension=php_pdo_mysql.dll //使 drupal 能够连接 mysql 数据库 重启 apache web 服务,刷新当前页面...,显示可连接 mysql 数据库。...安装完成 注: 在安装过程中有时由于安装翻译等步骤执行时间过长, 会出现超时错误, 解 决办法:打开 php.ini 文件,找到 max_execution_time,将后面的数字改成你 想要的时间(例如

1.5K30

谷歌云端硬盘 文件:复制

创建文件的副本,并使用补丁程序语义应用所有请求的更新。 立即尝试。...请求 HTTP请求 POST https://www.googleapis.com/drive/v3/files/ fileId / copy 参量 参数名称值描述路径参数fileIdstring文件的...除非上载新修订版,否则无法更改该值。 如果使用Google Doc MIME类型创建文件,则将尽可能导入上载的内容。受支持的导入格式在“关于”资源中发布。...可写的namestring文件名。这在文件夹中不一定是唯一的。请注意,对于不可变项,例如共享驱动器的顶层文件夹,“我的驱动器”根文件夹和“应用程序数据”文件夹,名称是恒定的。...可写的propertiesobject对所有应用程序可见的任意键值对的集合。 在更新和复制请求中将清除具有空值的条目。 可写的starredboolean用户是否已为文件加星标。

1.6K20

php.ini参数调优详细分析

打开时,PHP将检查当前脚本的拥有者是否和被操作的文件的拥有者相同。...如果不进行设置,可能我们无法对我们服务器网站目录下的文件进行操作了,比如我们需要对文件进行操作的时候。...= On 7、错误信息控制 一般PHP在没有连接到数据库或者其他情况下会有提示错误,一般错误信息中会包含PHP脚本当前的路径信息或者查询的SQL语句等信息,这类信息提供给黑客后是不安全的,所以一般服务器建议禁止错误提示...设置为: max_input_time = 60; 9.4、上载文件的最大许可大小 当上传较大文件时,需要调整如下参数: upload_max_filesize = 2M; 10、部分安全参数优化 1、...禁止打开远程地址,最近出的php的include的漏洞,就是在一个php程序中include了变量,那么入侵者就可以利用这个控制服务器在本地执行远程的一个PHP程序,例如phpshell,所以我们要关闭这个

41720

用宝塔搭建勾股CMS博客系统

解决方法,查找php.ini文件位置,打开php.ini,搜索 disable_functions 项,看是否禁用了putenv 和 proc_open函数。...如果安装后打开页面提示404错误,请检查服务器伪静态配置,如果是宝塔面板,网站伪静态请配置使用thinkphp规则。...如果提示当前权限不足,无法写入配置文件config/database.php,请检查database.php是否可读,还有可能是当前安装程序无法访问父目录,请检查PHP的open_basedir配置。...出现访问报错一般是服务器环境配置问题 比如:伪静态配置,网站的访问入口是否绑定public目录,放配置文件的目录是否有可写权限,放缓存的目录是否有可写权限,数据库连接确认无误等。...如果安装成功后,无法显示图形验证码的,请看是否已安装(开启)了PHP的GD库。 如果安装成功后,无法上传文件的,请看是否已安装(开启)了PHP的fileinfo扩展。

1.1K20

如何在Ubuntu 14.04和Debian 8上使用Apache设置ModSecurity

要在此步骤中查找和替换配置指令,我们将使用sed编辑器。 要启用的基本指令 将默认的ModSecurity配置文件设置为DetectionOnly,根据规则匹配记录请求,不阻止任何内容。...如果客户端发送任何更大的内容,服务器将响应413请求实体太大错误。如果您的Web应用程序没有任何文件上载,则可以保留此值。配置文件中指定的预配置值为13107200字节(12.5MB)。...php } ?> 此脚本将显示登录表单。打开浏览器并导航到http://your_server_ip/login.php查看它。...首先,我们将创建一个示例PHP脚本,该脚本从文本框中获取输入并将其显示回用户。打开一个名为form.php文件来编辑。...保存文件并重新加载Apache。 sudo service apache2 reload 在浏览器中打开http://your_server_ip/form.php

1.8K00

关于allow_url_fopen的设置与服务器的安全–不理解

最初,人们开发和发布PHP程序的时候,为了区别代码库和主程序代码,一般是为代码库文件设置一个“.inc”的扩展名,但是他们很快发现这是一个错误,因为这样的文件无法PHP解释器正确解析为PHP代码。...Session机制也为攻击者把自己的输入保存在远程系统的文件中提供了另一个方便的地方,对于上面的例子来说,攻击者需要在远程系统放置一个包含PHP代码的文件,如果不能利用文件上载做到的话,他通常会利用session...PHP文件描述符 fopen():打开文件,并对应一个PHP文件描述符 readfile():读取文件的内容,然后输出到客户浏览器 file():把整个文件内容读到一个数组中...“HTTP_GET/POST_VARS['hello']”。...基于脚本所有权和目标文件所有权的文件访问限制 4. 禁止文件上载功能 这对于ISP来说是一个伟大的选项,同时它也能极大地改进PHP的安全性。

1.1K10

解析Node.js 中的 Stream()

例如,在基于 Node.js 的 HTTP 服务器中,request 是可读,response 是可写。还有fs 模块,能同时处理可读和可写文件。...只要你用 Express,就是在使用与客户端进行交互,也被用于各种数据库连接驱动程序中,因为 TCP 套接字、TLS 堆栈和其他连接都是基于 Node.js 的。...如果删除了readable事件处理程序,那么如果存在data事件处理程序,则就会再次开始流动。 如何创建可写 要将数据写入可写,你需要在实例上调用write()。...如果返回 false,则表示出了点问题,目前无法写入任何内容。可写将通过发出drain事件来通知你何时可以开始写入更多数据。...() 创建一个文件可读 fs.createWriteStream() 创建一个文件可写 net.connect() 初始化一个基于连接 http.request() 返回 http.ClientRequest

2.5K30

PHP 实时生成并下载超大数据量的 EXCEL 文件

而常用的PHPexcel包需要把所有数据拿到后才能生成excel, 在面对生成超大数据量的excel文件时这显然是会造成内存溢出的,所以考虑使用让PHP边写入输出边让浏览器下载的形式来完成需求。...//output是一个可写的输出,允许程序像操作文件一样将输出写入到输出中,PHP会把输出中的内容发送给web服务器并返回给发起请求的浏览器。...注:以下代码只是阐明生成大数据量EXCEL的思路和步骤,并且在去掉项目业务代码后程序有语法错误不能拿来直接运行,请根据自己的需求填充对应的业务代码!.../** * 文章访问日志 * 下载的日志文件通常很大, 所以先设置csv相关的Header头, 然后打开 * PHP output, 渐进式的往output中写入数据,...} fclose($fp); exit(); } 好了, 其实很简单,就是用逐步写入输出并发送到浏览器让浏览器去逐步下载整个文件,由于是逐步写入的无法获取文件的总体

3.5K61

PHP中的php.ini文件详解 原

php.ini是PHP的初始化配置文件,该文件下内容非常多,进行个性化配置并不方便,所以在进行LNMP环境搭建时我们并没有完全使用它,只使用了其中默认开启的部分配置(该部分配置必须保留,所以PHP配置文件目录下必须有该文件...,   ; 或者在这里将指示设为 On 而使得所有文件的输出缓存打开.   ...display_startup_errors = Off ; 甚至当display_erroes打开了,发生于PHP的启动的步骤中   ; 的错误也不会被显示....协议上载文件的临时目录(在没指定时使用系统默认的)   upload_max_filesize = 2097152 ; 文件上载默认地限制为2 Meg   extension_dir = c:php...方式文件上载   ;upload_tmp_dir = ; 用于HTTP上载文件的临时目录(未指定则使用系统默认)   upload_max_filesize = 2M ; 上载文件的最大许可大小

3.6K10
领券