当前位置: 编程技术>php
本页文章导读:
▪php开发环境配置记录
【apache安装】 代码如下: httpd.exe -k install -n "apache2.2.15" httpd.exe -k start -n "apache2.2.15" 【apache卸载】 代码如下: httpd.exe -k stop -n "apache2.2.15" httpd.exe -k uninstall -n "apache2.2.15" 【httpd.conf配置关键.........
▪PHP文件读写操作之文件写入代码
在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势,但是文件读写操.........
▪PHP文件读写操作之文件读取方法详解
PHP文件读取操作相对于文件写入操作涉及更多的PHP文件操作函数,在代码实例中会详细介绍这些函数。 读取文本文件中存储数据的方式主要涉及的三个步骤及部分文件操作函数如下: .........
[1]php开发环境配置记录
来源: 互联网 发布时间: 2013-11-30
【apache安装】
httpd.exe -k install -n "apache2.2.15"
httpd.exe -k start -n "apache2.2.15"
【apache卸载】
httpd.exe -k stop -n "apache2.2.15"
httpd.exe -k uninstall -n "apache2.2.15"
【httpd.conf配置关键】
ServerRoot "D:/APM/Apache2.2.15"
Listen 80
# 压缩发送给客户端的内容 gzip支持
#LoadModule deflate_module modules/mod_deflate.so
# LoadModule cgi_module modules/mod_cgi.so
# fastcgi
LoadModule fcgid_module modules/mod_fcgid.so
LoadModule rewrite_module modules/mod_rewrite.so
DocumentRoot "D:/APM/Apache2.2.15/htdocs"
# 支持 php 脚本
# fastcgi模式将此行注释
# 直接在虚拟主机中可配置每个站点使用不同版本的php 或者不同的cgi
#Include conf/extra/httpd-php.conf
# Fancy directory listings 华丽的目录清单
Include conf/extra/httpd-autoindex.conf
# Virtual hosts 虚拟主机
#Include conf/extra/httpd-vhosts.conf
# fastcgi模式虚拟主机
Include conf/extra/httpd-vhosts-fcgid.conf
# Various default settings 页脚显示版本信息AccessFileName .htaccess
Include conf/extra/httpd-default.conf
【httpd-php.conf参考】
#
# 查找 /APM/php-5.2.12-Win32 替换
#
SetEnv PHPRC "/APM/php-5.2.12-Win32"
SetEnv TMP "/tmp"
# UnsetEnv PERL5LIB
# 加载dll省去在PATH中添加php路径
#LoadFile "/APM/php-5.2.12-Win32/libpq.dll"
LoadFile "/APM/php-5.2.12-Win32/libmysql.dll"
LoadFile "/APM/php-5.2.12-Win32/libmcrypt.dll"
LoadFile "/APM/php-5.2.12-Win32/libmhash.dll"
LoadFile "/APM/php-5.2.12-Win32/libeay32.dll"
LoadFile /APM/php-5.2.12-Win32/ssleay32.dll
#
# PHP-Module setup
#
LoadFile "/APM/php-5.2.12-Win32/php5ts.dll"
LoadModule php5_module "/APM/php-5.2.12-Win32/php5apache2_2.dll"
SetHandler application/x-httpd-php
SetHandler application/x-httpd-php-source
# Load php.ini File Dir
PHPIniDir "/APM/php-5.2.12-Win32"
AddType text/html .php .phps
【httpd-vhosts.conf参考】
NameVirtualHost *:80
#文档目录
DocumentRoot "/vhosts/localhost"
#名字 如www.php.net
ServerName localhost
#别名 如php.net
ServerAlias 127.0.0.1
#错误日志文件
ErrorLog "logs/dummy-host.localhost-error_log"
#目录访问规则
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
#目录索引文件
DirectoryIndex index.html index.htm index.php
[html]
【httpd-vhosts-fcgid.conf参考】
[code]
#FcgidInitialEnv PHPRC "/APM/php5210"
#FcgidInitialEnv PATH "/APM/php5210;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;"
#FcgidInitialEnv SystemRoot "C:/Windows"
#FcgidInitialEnv SystemDrive "C:"
#FcgidInitialEnv TEMP "C:/WINDOWS/Temp"
#FcgidInitialEnv TMP "C:/WINDOWS/Temp"
#FcgidInitialEnv windir "C:/WINDOWS"
FcgidIOTimeout 64
FcgidConnectTimeout 16
FcgidMaxRequestsPerProcess 500
NameVirtualHost *:80
DocumentRoot "/vhosts/localhost"
ServerName localhost
ServerAlias 127.0.0.1
ErrorLog "logs/dummy-host.localhost-error_log"
Options Indexes FollowSymLinks ExecCGI
#Options +ExecCGI
AllowOverride All
#AddHandler fcgid-script .php
#FCGIWrapper /APM/php5210/php-cgi.exe .php
#"
AddHandler fcgid-script .php
FcgidWrapper "/APM/php-5.2.13-nts-Win32/php-cgi.exe" .php
#FcgidWrapper "/APM/php-5.3.2-nts-Win32-VC6-x86/php-cgi.exe" .php
#
Order allow,deny
Allow from all
DirectoryIndex index.html index.htm index.php
【Mysql安装】
mysqld-nt.exe --install MySQL5.0.45-community-nt --defaults-file=D:\APM\mysql5.0.45\my.ini
net start MySQL5.0.45-community-nt
【Mysql卸载】
net stop MySQL5.0.45-community-nt
mysqld-nt.exe --remove MySQL5.0.45-community-nt
【my.ini参考】
[mysqld]
basedir="D:\APM\mysql5.0.45\"
datadir="D:\APM\mysql5.0.45\Data\"
tmpdir="D:\APM\mysql5.0.45\tmp\"
# log="D:\APM\mysql5.0.45\tmp\mysql.log"
default-character-set=utf8
port=3306
interactive_timeout=5
wait_timeout=5
skip-locking
skip-innodb
skip-bdb
ft_min_word_len=1
[mysqld]
port=3306
basedir="D:/mysql/"
datadir="D:/mysql/Data/"
tmpdir="d:/mysql/tmp/"
default-character-set=utf8
default-storage-engine=MYISAM
skip-bdb
skip-innodb
skip-locking
key_buffer=16M
max_allowed_packet=1M
table_cache=128
thread_cache=8
join_buffer_size=512K
sort_buffer=512K
record_buffer=512K
max_connections=500
wait_timeout=120
interactive_timeout=120
max_connect_errors=3000
long_query_time=1
max_heap_table_size=16M
tmp_table_size=8M
thread_concurrency=8
myisam_sort_buffer_size=8M
myisam_sort_buffer_size=4M
low_priority_updates=1
ft_min_word_len=1
【php.ini配置参考】
output_buffering = On
disable_functions = system,passthru,shell_exec,exec,popen,proc_open
enable_dl = Off
upload_tmp_dir = "D:/tmp/uploadtemp/"
session.save_path = "d:/tmp/sessiondata/"
date.timezone = "Etc/GMT-8" ;表示的是 GMT+8
mbstring.language = Neutral ; Set default language to Neutral(UTF-8) (default)
mbstring.internal_encoding = UTF-8 ; Set internal encoding to UTF-8
cgi.force_redirect = 0
cgi.fix_pathinfo = 1
fastcgi.impersonate = 1
[eaccelerator]
;zend_extension="/APM/ext/eAccelerator_v0_9_6_for_v5_2_13-VC6/eAccelerator.dll"
;zend_extension="/APM/ext/eAccelerator_v1_0_svn412_for_v5_2_13-VC6/eAccelerator.dll"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
;eaccelerator.log_file="/var/log/httpd/eaccelerator_log"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="300"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
[Zend]
zend_optimizer.optimization_level=15
zend_optimizer.encoder_loader=0
;zend_extension_ts="/APM/ext/ZendOptimizer-3.3.0/lib/Optimizer-3.3.0/php-5.2.x/ZendOptimizer.dll"
;zend_extension="/APM/ext/ZendOptimizer_nts.dll"
;zend_extension="/APM/ext/ZendOptimizerPlus.dll"
; 下面是使用ZendExtensionManager.dll的参考配置
;zend_extension_manager.optimizer_ts="/APM/Zend/ZendOptimizer-3.3.0/lib/Optimizer-3.3.0"
;zend_extension_ts="/APM/Zend/ZendOptimizer-3.3.0/lib/ZendExtensionManager.dll"
;zend_extension_manager.debug_server_ts="/APM/Zend/ZendOptimizer-3.3.0/lib/ZendDebugger-5.2.13-cygwin_nt-i386"
;zend_debugger.expose_remotely=always
;zend_debugger.allow_hosts=127.0.0.1/32
;zend_debugger.allow_tunnel=127.0.0.1/32
[ZendDebugger]
; 放到后边可以和zend_optimizer同时加载
;zend_extension_ts="/APM/ext/ZendDebugger-5.2.15RC1-cygwin_nt-i386/php-5.2.x/ZendDebugger.dll"
[xcache-common]
;zend_extension="D:/APM/ext/XCache-1.3.0-php-5.2.10-nts-Win32-VC6-x86/php_xcache.dll"
; extension = php_xcache.dll
[xcache.admin]
xcache.admin.enable_auth = Off
xcache.admin.user = "mOo"
; xcache.admin.pass = md5($您的密码)
xcache.admin.pass = ""
[xcache]
; 这里的多数选项仅在 ini 里可以修改, 这里列出的都是默认值, 除非另外说明
; select low level shm/allocator scheme implemenation
xcache.shm_scheme = "mmap"
; 禁用: xcache.size=0
; 启用: xcache.size=64M 之类 (任意>0的值) 同时请注意您的系统 mmap 上限
xcache.size = 0
; 建议设置为 cpu 数 (cat /proc/cpuinfo |grep -c processor)
xcache.count = 1
; 只是个参考值, 您可以放心地存储多于此数量的项目(php脚本/变量)
xcache.slots = 8K
; 缓存项目的 ttl, 0=永久
xcache.ttl = 0
; 扫描过期项目的时间间隔, 0=不扫描, 其他值以秒为单位
xcache.gc_interval = 60
; 同上, 只是针对变量缓存设置
xcache.var_size = 1M
xcache.var_count = 1
xcache.var_slots = 8K
; 默认, 允许 ini_set()
xcache.var_ttl = 0
; 最大ttl值
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
; 仅测试用
xcache.test = Off
; /dev/zero 时无效
xcache.readonly_protection = Off
; 对于 *nix 系统, xcache.mmap_path 是文件路径而不是目录, (可以不存在 但是必须能创建).
; 如果您期望启用 ReadonlyProtection, 可以使用类似 "/tmp/xcache"
; 2 个 php 组不会共享同一个 /tmp/xcache
; 对于 Win32 系统, xcache.mmap_path=匿名MAP名字, 不是文件路径. 建议使用 XCache 字眼避免跟其他软件冲突
xcache.mmap_path = "XCache"
; 仅用于 *nix 系统
; 设置为空(禁用) 或者类似 "/tmp/phpcore/"
; 注意该目录应该能被 php 写入文件 (跟 open_basedir 无关)
xcache.coredump_directory = ""
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off
[xcache.coverager]
; 如果 xcache.coveragedump_directory 设置为空则本设置自动为 Off
xcache.coverager = Off
; 请确保本目录能被 coverage viewer 脚本读取 (注意 open_basedir)
; 依赖于 xcache.coverager=On
xcache.coveragedump_directory = ""
[Xdebug]
xdebug.var_display_max_depth = 10
;xdebug.remote_autostart = 1
;xdebug.remote_enable=1
;xdebug.remote_handler=dbgp
;xdebug.remote_host=127.0.0.1
;xdebug.remote_mode=req
;xdebug.idekey=default
;xdebug.remote_log="/xdebug.log"
;xdebug.remote_port=9000
xdebug.auto_trace=off
;xdebug.collect_params=on
;xdebug.collect_return=on
xdebug.trace_output_dir="/tmp/xdebug"
xdebug.profiler_enable=off
xdebug.profiler_output_dir="/tmp/xdebug"
;zend_extension_ts="/APM/ext/xdebug/php_xdebug-2.0.5-5.2.dll"
;zend_extension="/APM/ext/xdebug/php_xdebug-2.0.5-5.2-nts.dll"
zend_extension="/APM/ext/xdebug/php_xdebug-2.1.0beta3-5.2-vc6-nts.dll"
【IIS ISAPI】
添加环境变量 PHPRC=D:\PHP 这个是通知iis读取php.ini文件的路径。
在PATH中加入 D:\PHP 能读取相关动态链接库。
添加一个新的web服务扩展 php d:\php\php5isapi.dll
添加应用程序扩展名映射 可执行文件 d:\php\php5isapi.dll 扩展名.php
重启IIS php就可以用了。
【IIS FastCGI PHP】
这个不用添加环境变量和修改PATH变量。
先安装FastCGI,安装程序会自动添加
Web 服务扩展 - FastCGI Handler
c:\windows\system32\inetsrv\fcgiext.dll
并设置为允许。
修改c:\windows\system32\inetsrv\fcgiext.ini
[Types]
php=PHP
[PHP]
ExePath=D:\php\php-cgi.exe
InstanceMaxRequests=10000
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000
添加应用程序扩展名映射 可执行文件 c:\windows\system32\inetsrv\fcgiext.dll 扩展名.php
重启iis就行了。
【ISAPI_Rewrite 参考】
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^03188.net [NC]
RewriteRule ^(.*)$ http://www.03188.net/$1 [L,R=301]
#### RewriteCond %{REQUEST_URI} ^[A-Z]{3,9}\ /index\.php\ HTTP /
# RewriteRule ^index\.(php|htm|html)$ http://www.03188.net/ [R=301,L]
RewriteRule ^([a-z]+)/(.*)/(.*)/(.*)\.htm$ index.php?action=$1&option=$2&extent=$3&info=$4 [L]
RewriteRule ^([a-z]+)/(.*)/(.*)\.htm$ index.php?action=$1&option=$2&extent=$3&info=$3 [L]
RewriteRule ^([a-z]+)/(.*)\.htm$ index.php?action=$1&option=$2 [L]
RewriteRule ^([a-z]+)\.htm$ index.php?action=$1 [L]
# RewriteRule ^(.*)\.asp$ http://www.03188.net [L,R=301]
# 修改完整模式下被抓取的url使有效
# RewriteRule ^index\.php/([a-z]+)/(.*)/(.*)\.htm$ $1/$2/$3\.htm [L,R=301]
# RewriteRule ^index\.php/([a-z]+)/(.*)\.htm$ $1/$2\.htm [L,R=301]
# 修改论坛移动后出现No input file specified.
# RewriteRule ^bbs/(.*)$ http://bbs.03188.net/$1 [L,R=301]
# 修改人力资源hr
# RewriteRule ^hr/(.*)$ http://hr.03188.net/$1 [L,R=301]
代码如下:
httpd.exe -k install -n "apache2.2.15"
httpd.exe -k start -n "apache2.2.15"
【apache卸载】
代码如下:
httpd.exe -k stop -n "apache2.2.15"
httpd.exe -k uninstall -n "apache2.2.15"
【httpd.conf配置关键】
代码如下:
ServerRoot "D:/APM/Apache2.2.15"
Listen 80
# 压缩发送给客户端的内容 gzip支持
#LoadModule deflate_module modules/mod_deflate.so
# LoadModule cgi_module modules/mod_cgi.so
# fastcgi
LoadModule fcgid_module modules/mod_fcgid.so
LoadModule rewrite_module modules/mod_rewrite.so
DocumentRoot "D:/APM/Apache2.2.15/htdocs"
# 支持 php 脚本
# fastcgi模式将此行注释
# 直接在虚拟主机中可配置每个站点使用不同版本的php 或者不同的cgi
#Include conf/extra/httpd-php.conf
# Fancy directory listings 华丽的目录清单
Include conf/extra/httpd-autoindex.conf
# Virtual hosts 虚拟主机
#Include conf/extra/httpd-vhosts.conf
# fastcgi模式虚拟主机
Include conf/extra/httpd-vhosts-fcgid.conf
# Various default settings 页脚显示版本信息AccessFileName .htaccess
Include conf/extra/httpd-default.conf
【httpd-php.conf参考】
代码如下:
#
# 查找 /APM/php-5.2.12-Win32 替换
#
SetEnv PHPRC "/APM/php-5.2.12-Win32"
SetEnv TMP "/tmp"
# UnsetEnv PERL5LIB
# 加载dll省去在PATH中添加php路径
#LoadFile "/APM/php-5.2.12-Win32/libpq.dll"
LoadFile "/APM/php-5.2.12-Win32/libmysql.dll"
LoadFile "/APM/php-5.2.12-Win32/libmcrypt.dll"
LoadFile "/APM/php-5.2.12-Win32/libmhash.dll"
LoadFile "/APM/php-5.2.12-Win32/libeay32.dll"
LoadFile /APM/php-5.2.12-Win32/ssleay32.dll
#
# PHP-Module setup
#
LoadFile "/APM/php-5.2.12-Win32/php5ts.dll"
LoadModule php5_module "/APM/php-5.2.12-Win32/php5apache2_2.dll"
SetHandler application/x-httpd-php
SetHandler application/x-httpd-php-source
# Load php.ini File Dir
PHPIniDir "/APM/php-5.2.12-Win32"
AddType text/html .php .phps
【httpd-vhosts.conf参考】
代码如下:
NameVirtualHost *:80
#文档目录
DocumentRoot "/vhosts/localhost"
#名字 如www.php.net
ServerName localhost
#别名 如php.net
ServerAlias 127.0.0.1
#错误日志文件
ErrorLog "logs/dummy-host.localhost-error_log"
#目录访问规则
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
#目录索引文件
DirectoryIndex index.html index.htm index.php
[html]
【httpd-vhosts-fcgid.conf参考】
[code]
#FcgidInitialEnv PHPRC "/APM/php5210"
#FcgidInitialEnv PATH "/APM/php5210;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;"
#FcgidInitialEnv SystemRoot "C:/Windows"
#FcgidInitialEnv SystemDrive "C:"
#FcgidInitialEnv TEMP "C:/WINDOWS/Temp"
#FcgidInitialEnv TMP "C:/WINDOWS/Temp"
#FcgidInitialEnv windir "C:/WINDOWS"
FcgidIOTimeout 64
FcgidConnectTimeout 16
FcgidMaxRequestsPerProcess 500
NameVirtualHost *:80
DocumentRoot "/vhosts/localhost"
ServerName localhost
ServerAlias 127.0.0.1
ErrorLog "logs/dummy-host.localhost-error_log"
Options Indexes FollowSymLinks ExecCGI
#Options +ExecCGI
AllowOverride All
#AddHandler fcgid-script .php
#FCGIWrapper /APM/php5210/php-cgi.exe .php
#"
AddHandler fcgid-script .php
FcgidWrapper "/APM/php-5.2.13-nts-Win32/php-cgi.exe" .php
#FcgidWrapper "/APM/php-5.3.2-nts-Win32-VC6-x86/php-cgi.exe" .php
#
Order allow,deny
Allow from all
DirectoryIndex index.html index.htm index.php
【Mysql安装】
代码如下:
mysqld-nt.exe --install MySQL5.0.45-community-nt --defaults-file=D:\APM\mysql5.0.45\my.ini
net start MySQL5.0.45-community-nt
【Mysql卸载】
代码如下:
net stop MySQL5.0.45-community-nt
mysqld-nt.exe --remove MySQL5.0.45-community-nt
【my.ini参考】
代码如下:
[mysqld]
basedir="D:\APM\mysql5.0.45\"
datadir="D:\APM\mysql5.0.45\Data\"
tmpdir="D:\APM\mysql5.0.45\tmp\"
# log="D:\APM\mysql5.0.45\tmp\mysql.log"
default-character-set=utf8
port=3306
interactive_timeout=5
wait_timeout=5
skip-locking
skip-innodb
skip-bdb
ft_min_word_len=1
[mysqld]
port=3306
basedir="D:/mysql/"
datadir="D:/mysql/Data/"
tmpdir="d:/mysql/tmp/"
default-character-set=utf8
default-storage-engine=MYISAM
skip-bdb
skip-innodb
skip-locking
key_buffer=16M
max_allowed_packet=1M
table_cache=128
thread_cache=8
join_buffer_size=512K
sort_buffer=512K
record_buffer=512K
max_connections=500
wait_timeout=120
interactive_timeout=120
max_connect_errors=3000
long_query_time=1
max_heap_table_size=16M
tmp_table_size=8M
thread_concurrency=8
myisam_sort_buffer_size=8M
myisam_sort_buffer_size=4M
low_priority_updates=1
ft_min_word_len=1
【php.ini配置参考】
代码如下:
output_buffering = On
disable_functions = system,passthru,shell_exec,exec,popen,proc_open
enable_dl = Off
upload_tmp_dir = "D:/tmp/uploadtemp/"
session.save_path = "d:/tmp/sessiondata/"
date.timezone = "Etc/GMT-8" ;表示的是 GMT+8
mbstring.language = Neutral ; Set default language to Neutral(UTF-8) (default)
mbstring.internal_encoding = UTF-8 ; Set internal encoding to UTF-8
cgi.force_redirect = 0
cgi.fix_pathinfo = 1
fastcgi.impersonate = 1
[eaccelerator]
;zend_extension="/APM/ext/eAccelerator_v0_9_6_for_v5_2_13-VC6/eAccelerator.dll"
;zend_extension="/APM/ext/eAccelerator_v1_0_svn412_for_v5_2_13-VC6/eAccelerator.dll"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
;eaccelerator.log_file="/var/log/httpd/eaccelerator_log"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="300"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
[Zend]
zend_optimizer.optimization_level=15
zend_optimizer.encoder_loader=0
;zend_extension_ts="/APM/ext/ZendOptimizer-3.3.0/lib/Optimizer-3.3.0/php-5.2.x/ZendOptimizer.dll"
;zend_extension="/APM/ext/ZendOptimizer_nts.dll"
;zend_extension="/APM/ext/ZendOptimizerPlus.dll"
; 下面是使用ZendExtensionManager.dll的参考配置
;zend_extension_manager.optimizer_ts="/APM/Zend/ZendOptimizer-3.3.0/lib/Optimizer-3.3.0"
;zend_extension_ts="/APM/Zend/ZendOptimizer-3.3.0/lib/ZendExtensionManager.dll"
;zend_extension_manager.debug_server_ts="/APM/Zend/ZendOptimizer-3.3.0/lib/ZendDebugger-5.2.13-cygwin_nt-i386"
;zend_debugger.expose_remotely=always
;zend_debugger.allow_hosts=127.0.0.1/32
;zend_debugger.allow_tunnel=127.0.0.1/32
[ZendDebugger]
; 放到后边可以和zend_optimizer同时加载
;zend_extension_ts="/APM/ext/ZendDebugger-5.2.15RC1-cygwin_nt-i386/php-5.2.x/ZendDebugger.dll"
[xcache-common]
;zend_extension="D:/APM/ext/XCache-1.3.0-php-5.2.10-nts-Win32-VC6-x86/php_xcache.dll"
; extension = php_xcache.dll
[xcache.admin]
xcache.admin.enable_auth = Off
xcache.admin.user = "mOo"
; xcache.admin.pass = md5($您的密码)
xcache.admin.pass = ""
[xcache]
; 这里的多数选项仅在 ini 里可以修改, 这里列出的都是默认值, 除非另外说明
; select low level shm/allocator scheme implemenation
xcache.shm_scheme = "mmap"
; 禁用: xcache.size=0
; 启用: xcache.size=64M 之类 (任意>0的值) 同时请注意您的系统 mmap 上限
xcache.size = 0
; 建议设置为 cpu 数 (cat /proc/cpuinfo |grep -c processor)
xcache.count = 1
; 只是个参考值, 您可以放心地存储多于此数量的项目(php脚本/变量)
xcache.slots = 8K
; 缓存项目的 ttl, 0=永久
xcache.ttl = 0
; 扫描过期项目的时间间隔, 0=不扫描, 其他值以秒为单位
xcache.gc_interval = 60
; 同上, 只是针对变量缓存设置
xcache.var_size = 1M
xcache.var_count = 1
xcache.var_slots = 8K
; 默认, 允许 ini_set()
xcache.var_ttl = 0
; 最大ttl值
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
; 仅测试用
xcache.test = Off
; /dev/zero 时无效
xcache.readonly_protection = Off
; 对于 *nix 系统, xcache.mmap_path 是文件路径而不是目录, (可以不存在 但是必须能创建).
; 如果您期望启用 ReadonlyProtection, 可以使用类似 "/tmp/xcache"
; 2 个 php 组不会共享同一个 /tmp/xcache
; 对于 Win32 系统, xcache.mmap_path=匿名MAP名字, 不是文件路径. 建议使用 XCache 字眼避免跟其他软件冲突
xcache.mmap_path = "XCache"
; 仅用于 *nix 系统
; 设置为空(禁用) 或者类似 "/tmp/phpcore/"
; 注意该目录应该能被 php 写入文件 (跟 open_basedir 无关)
xcache.coredump_directory = ""
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off
[xcache.coverager]
; 如果 xcache.coveragedump_directory 设置为空则本设置自动为 Off
xcache.coverager = Off
; 请确保本目录能被 coverage viewer 脚本读取 (注意 open_basedir)
; 依赖于 xcache.coverager=On
xcache.coveragedump_directory = ""
[Xdebug]
xdebug.var_display_max_depth = 10
;xdebug.remote_autostart = 1
;xdebug.remote_enable=1
;xdebug.remote_handler=dbgp
;xdebug.remote_host=127.0.0.1
;xdebug.remote_mode=req
;xdebug.idekey=default
;xdebug.remote_log="/xdebug.log"
;xdebug.remote_port=9000
xdebug.auto_trace=off
;xdebug.collect_params=on
;xdebug.collect_return=on
xdebug.trace_output_dir="/tmp/xdebug"
xdebug.profiler_enable=off
xdebug.profiler_output_dir="/tmp/xdebug"
;zend_extension_ts="/APM/ext/xdebug/php_xdebug-2.0.5-5.2.dll"
;zend_extension="/APM/ext/xdebug/php_xdebug-2.0.5-5.2-nts.dll"
zend_extension="/APM/ext/xdebug/php_xdebug-2.1.0beta3-5.2-vc6-nts.dll"
【IIS ISAPI】
代码如下:
添加环境变量 PHPRC=D:\PHP 这个是通知iis读取php.ini文件的路径。
在PATH中加入 D:\PHP 能读取相关动态链接库。
添加一个新的web服务扩展 php d:\php\php5isapi.dll
添加应用程序扩展名映射 可执行文件 d:\php\php5isapi.dll 扩展名.php
重启IIS php就可以用了。
【IIS FastCGI PHP】
代码如下:
这个不用添加环境变量和修改PATH变量。
先安装FastCGI,安装程序会自动添加
Web 服务扩展 - FastCGI Handler
c:\windows\system32\inetsrv\fcgiext.dll
并设置为允许。
修改c:\windows\system32\inetsrv\fcgiext.ini
[Types]
php=PHP
[PHP]
ExePath=D:\php\php-cgi.exe
InstanceMaxRequests=10000
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000
添加应用程序扩展名映射 可执行文件 c:\windows\system32\inetsrv\fcgiext.dll 扩展名.php
重启iis就行了。
【ISAPI_Rewrite 参考】
代码如下:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^03188.net [NC]
RewriteRule ^(.*)$ http://www.03188.net/$1 [L,R=301]
#### RewriteCond %{REQUEST_URI} ^[A-Z]{3,9}\ /index\.php\ HTTP /
# RewriteRule ^index\.(php|htm|html)$ http://www.03188.net/ [R=301,L]
RewriteRule ^([a-z]+)/(.*)/(.*)/(.*)\.htm$ index.php?action=$1&option=$2&extent=$3&info=$4 [L]
RewriteRule ^([a-z]+)/(.*)/(.*)\.htm$ index.php?action=$1&option=$2&extent=$3&info=$3 [L]
RewriteRule ^([a-z]+)/(.*)\.htm$ index.php?action=$1&option=$2 [L]
RewriteRule ^([a-z]+)\.htm$ index.php?action=$1 [L]
# RewriteRule ^(.*)\.asp$ http://www.03188.net [L,R=301]
# 修改完整模式下被抓取的url使有效
# RewriteRule ^index\.php/([a-z]+)/(.*)/(.*)\.htm$ $1/$2/$3\.htm [L,R=301]
# RewriteRule ^index\.php/([a-z]+)/(.*)\.htm$ $1/$2\.htm [L,R=301]
# 修改论坛移动后出现No input file specified.
# RewriteRule ^bbs/(.*)$ http://bbs.03188.net/$1 [L,R=301]
# 修改人力资源hr
# RewriteRule ^hr/(.*)$ http://hr.03188.net/$1 [L,R=301]
[2]PHP文件读写操作之文件写入代码
来源: 互联网 发布时间: 2013-11-30
在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势,但是文件读写操作在基本的PHP开发中还是时有使用,今天和大家分享如何利用PHP技术实现文件读写之文件写入操作教程,也算是对PHP文件读写操作的入门学习。
将数据写入文件的操作主要涉及三个步骤及部分文件操作函数如下:
1、打开文件(文件操作函数:fopen)
2、写入文件(文件操作函数:fwrite等)
3、关闭文件(文件操作函数:fclose)
下面通过文件读写操作代码实例教程来讲解
基本的PHP文件写入操作函数fopen、fwrite、fclose应用教程
<?
@$fp = fopen("leapsoulcn.txt","w");
if(!$fp){
echo "system error";
exit();
}else {
$fileData = "domain"."\t"."www.leapsoul.cn"."\n";
$fileData = $fileData."description"."\t"."PHP网站开发教程网,面向PHP初学者的PHP教程网。"."\n";
$fileData = $fileData."title"."\t"."本文主要讲述PHP文件读写操作中最基本的文件写入教程。";
fwrite($fp,$fileData);
fclose($fp);
}
?>
注释:在这段文件读写操作实例代码中,主要功能是在文件写入两行文字。
知识点:
1、使用fopen函数打开文件,在应用fopen函数准备打开文件时,你首先需要明确:
打开文件干什么?是读文件中的数据呢,还是将数据写入文件,亦或者读写文件?
另外你需要考虑如果文件中已经存在相关数据,你是覆盖原有文件中的数据呢,还是仅仅将新数据添加至文件末尾
这些问题涉及到PHP文件读写操作中的fopen函数中的文件模式的应用,fopen函数原型如下:
fopen(filename,mode,include_path,context)
调用文件操作函数fopen()时,通常需要传递两个或三个参数。
filename:规定要打开的文件或URL。可以指定文件的绝对路径,Windows一般为C:\,Unix为/,通过URL,你也可以打开远程文件。在这里写入的文件与PHP文件写入代码文件我放在同一个目录。
mode:规定要求到该文件/流的访问类型。即打开文件的模式。
include_path:可选项。如果需要在include_path中搜索文件的话,可以将该参数设为1或TRUE。
常用的fopen的文件操作模式说明
”r” - 以只读方式打开文件,从文件头开始读。
”r+” - 以读写方式打开文件。
”w” - 以写入方式打开文件,从文件头开始写。如果文件不存在则尝试创建,如果文件存在,则先删除文件中的内容。
”w+” - 以读写方式打开文件,从文件头开始读写。如果文件不存在则尝试创建,如果文件存在,则先删除文件中的内容。
”a” - 以写入方式打开,从文件末尾开始追加写。如果文件不存在则尝试创建。
”a+” - 以读写方式打开,从文件末尾开始追加写写或者读。如果文件不存在则尝试创建。
注意:在进行文件读写操作时,你一定要确保打开的文件具有相应的读写权限,否则fopen会报错。你可以使用@来抑制产生的错误,然后合理处理错误。
2、在使用文件操作函数fopen打开文件后,需要通过对变量赋值,然后写到$fp指向的文件指针中去,在上述PHP文件写入操作教程实例中,我使用的是一行一行存储,即换行储存,主要通过\n作为换行分隔符。
fwrite文件写入函数原型如下:
fwrite(fp,string,length)
在这里你也可以使用文件写入函数fputs,其是fwrite的别名函数,功能与用法与fwrite一样。
在文件写入函数fwrite中length是可选项,主要用来设定写入文件的最大字符数,如果设定了这个参数,fwrite会按设定的length,在指定文件中写入规定长度的字符。fwrite()返回写入文件的字符数,出现错误时则返回false。
在文件写入操作完成后,需要关闭文件句柄,否则会占用系统资源等。可以使用fclose($fp)函数来完成这件事。文件关闭成功则返回true,否则返回false。
至此文件写入操作就完成了。
以上是PHP文件读写操作教程之文件写入操作的最基本应用,除了文件写入操作,在PHP网站开发中经常需要读取相关的文件内容,文件读写操作函数中可以使用不同的函数实现对文件的读操作。下次将分下如何读取文件。
将数据写入文件的操作主要涉及三个步骤及部分文件操作函数如下:
1、打开文件(文件操作函数:fopen)
2、写入文件(文件操作函数:fwrite等)
3、关闭文件(文件操作函数:fclose)
下面通过文件读写操作代码实例教程来讲解
基本的PHP文件写入操作函数fopen、fwrite、fclose应用教程
代码如下:
<?
@$fp = fopen("leapsoulcn.txt","w");
if(!$fp){
echo "system error";
exit();
}else {
$fileData = "domain"."\t"."www.leapsoul.cn"."\n";
$fileData = $fileData."description"."\t"."PHP网站开发教程网,面向PHP初学者的PHP教程网。"."\n";
$fileData = $fileData."title"."\t"."本文主要讲述PHP文件读写操作中最基本的文件写入教程。";
fwrite($fp,$fileData);
fclose($fp);
}
?>
注释:在这段文件读写操作实例代码中,主要功能是在文件写入两行文字。
知识点:
1、使用fopen函数打开文件,在应用fopen函数准备打开文件时,你首先需要明确:
打开文件干什么?是读文件中的数据呢,还是将数据写入文件,亦或者读写文件?
另外你需要考虑如果文件中已经存在相关数据,你是覆盖原有文件中的数据呢,还是仅仅将新数据添加至文件末尾
这些问题涉及到PHP文件读写操作中的fopen函数中的文件模式的应用,fopen函数原型如下:
代码如下:
fopen(filename,mode,include_path,context)
调用文件操作函数fopen()时,通常需要传递两个或三个参数。
filename:规定要打开的文件或URL。可以指定文件的绝对路径,Windows一般为C:\,Unix为/,通过URL,你也可以打开远程文件。在这里写入的文件与PHP文件写入代码文件我放在同一个目录。
mode:规定要求到该文件/流的访问类型。即打开文件的模式。
include_path:可选项。如果需要在include_path中搜索文件的话,可以将该参数设为1或TRUE。
常用的fopen的文件操作模式说明
”r” - 以只读方式打开文件,从文件头开始读。
”r+” - 以读写方式打开文件。
”w” - 以写入方式打开文件,从文件头开始写。如果文件不存在则尝试创建,如果文件存在,则先删除文件中的内容。
”w+” - 以读写方式打开文件,从文件头开始读写。如果文件不存在则尝试创建,如果文件存在,则先删除文件中的内容。
”a” - 以写入方式打开,从文件末尾开始追加写。如果文件不存在则尝试创建。
”a+” - 以读写方式打开,从文件末尾开始追加写写或者读。如果文件不存在则尝试创建。
注意:在进行文件读写操作时,你一定要确保打开的文件具有相应的读写权限,否则fopen会报错。你可以使用@来抑制产生的错误,然后合理处理错误。
2、在使用文件操作函数fopen打开文件后,需要通过对变量赋值,然后写到$fp指向的文件指针中去,在上述PHP文件写入操作教程实例中,我使用的是一行一行存储,即换行储存,主要通过\n作为换行分隔符。
fwrite文件写入函数原型如下:
代码如下:
fwrite(fp,string,length)
在这里你也可以使用文件写入函数fputs,其是fwrite的别名函数,功能与用法与fwrite一样。
在文件写入函数fwrite中length是可选项,主要用来设定写入文件的最大字符数,如果设定了这个参数,fwrite会按设定的length,在指定文件中写入规定长度的字符。fwrite()返回写入文件的字符数,出现错误时则返回false。
在文件写入操作完成后,需要关闭文件句柄,否则会占用系统资源等。可以使用fclose($fp)函数来完成这件事。文件关闭成功则返回true,否则返回false。
至此文件写入操作就完成了。
以上是PHP文件读写操作教程之文件写入操作的最基本应用,除了文件写入操作,在PHP网站开发中经常需要读取相关的文件内容,文件读写操作函数中可以使用不同的函数实现对文件的读操作。下次将分下如何读取文件。
[3]PHP文件读写操作之文件读取方法详解
来源: 互联网 发布时间: 2013-11-30
PHP文件读取操作相对于文件写入操作涉及更多的PHP文件操作函数,在代码实例中会详细介绍这些函数。
读取文本文件中存储数据的方式主要涉及的三个步骤及部分文件操作函数如下:
1、打开文件(文件操作函数:fopen)
2、文件数据读取(文件操作函数:fgets、file、readfile、feof等)
3、关闭文件(文件操作函数:fclose)
下面仍然以PHP文件读写操作代码实例讲解文件读取方法的具体应用,在实例中,通过调用不同的PHP文件读取操作函数读取文本文件中的数据,你可以加深PHP文件读取操作函数的理解,以便在PHP网站开发中合理应用。文本文件中写入的数据来自于PHP文件读写操作之文件写入教程,fopen函数中关于文件读写模式也可参考此文。
PHP文件读取操作代码实例
<?
$readFun = "fread";
switch ($readFun)
{
case "fgetss":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
$allowable_tags = "<h1>";
while (!feof($fp)) {
$output = fgetss($fp,100,$allowable_tags);
echo $output;
}
fclose($fp);
break;
case "fgetcsv":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
while (!feof($fp)) {
$output = fgetcsv($fp,100,"\t");
print_r($output);
}
fclose($fp);
break;
case "readfile":
echo readfile("leapsoulcn.txt");
break;
case "fpassthru":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
if(!fpassthru($fp))
exit();
fclose($fp);
break;
case "file":
$output = file("leapsoulcn.txt");
print_r($output);
break;
case "fgetc":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
while (!feof($fp)) {
$str = fgetc($fp);
echo ($str == "\n"?"<br/>":$str);
}
fclose($fp);
break;
case "fread":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
echo fread($fp,300);
fclose($fp);
break;
default:
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
while (!feof($fp)) {
$output = fgets($fp,100);
echo $output;
}
fclose($fp);
break;
}
?>
注释:在上述实例中你可以通过对$readFun赋值来实现不同的PHP文件读取方法的调用,涉及的PHP文件读取操作函数有fgets、fgetss、fgetcsv、readfile、fpassthru、file、fgetc等函数。
PHP文件读取操作函数fgets、fgetss、fgetcsv之间的区别
在代码实例中,默认PHP文件读取操作函数为fgets,fgetss与fgetcsv函数的功能与fgets一样,都是一次读取文件中的一行,直到文件末尾。此处我设定读取文本文件中的数据长度为100,即最大读取长度为99(100-1),这样,当遇到换行符\n或文件结束符EOF或从文件中读取完99个字节时就停止读取数据。fgets函数返回文件读取的数据,字符串型。
fgetss函数是fgets函数的一个变体,它能够剥离PHP和HTML标记,通过传递第三参数来过滤不必要的数据,可以提高网站安全性,比如留言本中可以过滤用户的输入数据,fgetss函数原型如下:
string fgetss(resource fp,int length, string[optional] allowable_tags)
allowable_tags参数是可选项,实例中我事先在leapsoulcn.txt文件中写入了包含html、body、h1标记的一行文字,然后在代码中我设定只允许h1标记可以出现。
fgetcsv函数是fgets的另一个变体,区别在与,当你的文本文件中写入的数据使用了定界符,可以使用fgetcsv将一行分解成多行,返回的结果存储在数组中,函数原型如下
array fgetcsv(resource fp,int length, string[optional] delimiter,string[optional] enclosure)
delimiter是可选项,由于在之前写入文件的数据中我是用了\t,所以在实例中文件读取函数fgetcsv中的定界符我使用了\t,然后通过print_r打印出fgetcsv返回的数组结构。
三个PHP文件读取操作函数fgets、fgetss、fgetcsv共同之处在于事先都需要使用fopen函数打开读取的文件,同时通过feof函数判断是否文件指针到达文件末尾,切记在读取操作完成后使用fclose函数关闭文件。
fgetc:读取单个字符
fgetc函数用来读取一个字符,在代码实例中我通过一个一个读取字符,当遇到\n字符时将其转换成html文件中的br标记,以便在游览器中显示具体的换行效果,当然此函数的效率肯定是比较低的,不建议使用。
PHP文件读取操作函数readfile、fpassthru、file之间的区别
三个函数共同之处是一次可以读取整个文件,而不是一次读一行或一个字符。区别在于:
readfile函数打开文件,返回文件内容直接输出在游览器上,与fopen函数一样,函数返回值为文件的字符总数,readfile函数的第二个参数是可选项,指明PHP是否应在include_path中查找文件。在代码实例中,我使用echo语句不是用来输出读取的文件内容,而是输出读取的文件字符总数,读取的文件内容readfile函数已自动输出,这一点必须明确!readfile函数原型如下:
int readfile(string filename,int[optional] use_include_path)
file函数是另一种读取文件的方法,它是把读取的文件内容送到一个数组中,每行一个数组单元。file函数原型如下:
fpassthru()函数用来输出文件指针处的所有剩余数据,即如果文件指针并不在开头,它只输出文件指针后面的数据。该函数将给定的文件指针从当前的位置读取到EOF,并把结果写到输出缓冲区,返回值为输出的字符数。发生错误时,返回FALSE。与readfile()函数相比,fpassthru()函数需要首先打开文件,数据读取完毕后要关闭文件。
fread与file_exists、filesize函数
fread函数也是读取文件的一种方法,其可以从文件中读取任意字节,要么满足length要么读到文件末尾。read函数原型如下:
在用到fread函数时,当你想读取文件全部数据,又不知道文件数据长度时,filesize函数可以解决这个问题,即
<?
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
echo fread($fp,filesize("leapsoulcn.txt"));
fclose($fp);
?>
在PHP文件读写操作教程中我们还没有使用过file_exists函数,通常在PHP网站开发中,出于各种考虑,有时当文件不存在时,我们并不像创建新文件,这时我们就需要在使用fopen函数前使用file_exists函数判断文件是否存在,即
<?
if(file_exists("leapsoulcn.txt"))
{
//进行PHP文件读写操作
}
?>
以上就是PHP文件读写操作教程之文件读取操作的各种方法介绍,通过合理应用PHP文件读写操作函数,可以实现简单的留言本、网站log记录等功能。
读取文本文件中存储数据的方式主要涉及的三个步骤及部分文件操作函数如下:
1、打开文件(文件操作函数:fopen)
2、文件数据读取(文件操作函数:fgets、file、readfile、feof等)
3、关闭文件(文件操作函数:fclose)
下面仍然以PHP文件读写操作代码实例讲解文件读取方法的具体应用,在实例中,通过调用不同的PHP文件读取操作函数读取文本文件中的数据,你可以加深PHP文件读取操作函数的理解,以便在PHP网站开发中合理应用。文本文件中写入的数据来自于PHP文件读写操作之文件写入教程,fopen函数中关于文件读写模式也可参考此文。
PHP文件读取操作代码实例
代码如下:
<?
$readFun = "fread";
switch ($readFun)
{
case "fgetss":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
$allowable_tags = "<h1>";
while (!feof($fp)) {
$output = fgetss($fp,100,$allowable_tags);
echo $output;
}
fclose($fp);
break;
case "fgetcsv":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
while (!feof($fp)) {
$output = fgetcsv($fp,100,"\t");
print_r($output);
}
fclose($fp);
break;
case "readfile":
echo readfile("leapsoulcn.txt");
break;
case "fpassthru":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
if(!fpassthru($fp))
exit();
fclose($fp);
break;
case "file":
$output = file("leapsoulcn.txt");
print_r($output);
break;
case "fgetc":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
while (!feof($fp)) {
$str = fgetc($fp);
echo ($str == "\n"?"<br/>":$str);
}
fclose($fp);
break;
case "fread":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
echo fread($fp,300);
fclose($fp);
break;
default:
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
while (!feof($fp)) {
$output = fgets($fp,100);
echo $output;
}
fclose($fp);
break;
}
?>
注释:在上述实例中你可以通过对$readFun赋值来实现不同的PHP文件读取方法的调用,涉及的PHP文件读取操作函数有fgets、fgetss、fgetcsv、readfile、fpassthru、file、fgetc等函数。
PHP文件读取操作函数fgets、fgetss、fgetcsv之间的区别
在代码实例中,默认PHP文件读取操作函数为fgets,fgetss与fgetcsv函数的功能与fgets一样,都是一次读取文件中的一行,直到文件末尾。此处我设定读取文本文件中的数据长度为100,即最大读取长度为99(100-1),这样,当遇到换行符\n或文件结束符EOF或从文件中读取完99个字节时就停止读取数据。fgets函数返回文件读取的数据,字符串型。
fgetss函数是fgets函数的一个变体,它能够剥离PHP和HTML标记,通过传递第三参数来过滤不必要的数据,可以提高网站安全性,比如留言本中可以过滤用户的输入数据,fgetss函数原型如下:
代码如下:
string fgetss(resource fp,int length, string[optional] allowable_tags)
allowable_tags参数是可选项,实例中我事先在leapsoulcn.txt文件中写入了包含html、body、h1标记的一行文字,然后在代码中我设定只允许h1标记可以出现。
fgetcsv函数是fgets的另一个变体,区别在与,当你的文本文件中写入的数据使用了定界符,可以使用fgetcsv将一行分解成多行,返回的结果存储在数组中,函数原型如下
代码如下:
array fgetcsv(resource fp,int length, string[optional] delimiter,string[optional] enclosure)
delimiter是可选项,由于在之前写入文件的数据中我是用了\t,所以在实例中文件读取函数fgetcsv中的定界符我使用了\t,然后通过print_r打印出fgetcsv返回的数组结构。
三个PHP文件读取操作函数fgets、fgetss、fgetcsv共同之处在于事先都需要使用fopen函数打开读取的文件,同时通过feof函数判断是否文件指针到达文件末尾,切记在读取操作完成后使用fclose函数关闭文件。
fgetc:读取单个字符
fgetc函数用来读取一个字符,在代码实例中我通过一个一个读取字符,当遇到\n字符时将其转换成html文件中的br标记,以便在游览器中显示具体的换行效果,当然此函数的效率肯定是比较低的,不建议使用。
PHP文件读取操作函数readfile、fpassthru、file之间的区别
三个函数共同之处是一次可以读取整个文件,而不是一次读一行或一个字符。区别在于:
readfile函数打开文件,返回文件内容直接输出在游览器上,与fopen函数一样,函数返回值为文件的字符总数,readfile函数的第二个参数是可选项,指明PHP是否应在include_path中查找文件。在代码实例中,我使用echo语句不是用来输出读取的文件内容,而是输出读取的文件字符总数,读取的文件内容readfile函数已自动输出,这一点必须明确!readfile函数原型如下:
代码如下:
int readfile(string filename,int[optional] use_include_path)
file函数是另一种读取文件的方法,它是把读取的文件内容送到一个数组中,每行一个数组单元。file函数原型如下:
代码如下:
array file(string filename,bool[optional] use_include_path)
fpassthru()函数用来输出文件指针处的所有剩余数据,即如果文件指针并不在开头,它只输出文件指针后面的数据。该函数将给定的文件指针从当前的位置读取到EOF,并把结果写到输出缓冲区,返回值为输出的字符数。发生错误时,返回FALSE。与readfile()函数相比,fpassthru()函数需要首先打开文件,数据读取完毕后要关闭文件。
fread与file_exists、filesize函数
fread函数也是读取文件的一种方法,其可以从文件中读取任意字节,要么满足length要么读到文件末尾。read函数原型如下:
代码如下:
string fread(resource fp,int length)
在用到fread函数时,当你想读取文件全部数据,又不知道文件数据长度时,filesize函数可以解决这个问题,即
代码如下:
<?
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
echo fread($fp,filesize("leapsoulcn.txt"));
fclose($fp);
?>
在PHP文件读写操作教程中我们还没有使用过file_exists函数,通常在PHP网站开发中,出于各种考虑,有时当文件不存在时,我们并不像创建新文件,这时我们就需要在使用fopen函数前使用file_exists函数判断文件是否存在,即
代码如下:
<?
if(file_exists("leapsoulcn.txt"))
{
//进行PHP文件读写操作
}
?>
以上就是PHP文件读写操作教程之文件读取操作的各种方法介绍,通过合理应用PHP文件读写操作函数,可以实现简单的留言本、网站log记录等功能。
最新技术文章: