好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

关闭php魔术引号 关闭php魔术引号怎么打

很多站长朋友们都不太清楚关闭php魔术引号,今天小编就来给大家整理关闭php魔术引号,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 PHP如何去掉转义 2、 谁来帮帮我! 3、 php是???????? 4、 怎样打开“魔术引号(Magic Quote)GPC” 5、 求解这段PHP代码是什么意思,作用是什么 PHP如何去掉转义

string addslashes ( string str) 返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。

这些字符是单引号(\')、双引号(\")、反斜线(\\)与 NUL(NULL 字符) stripslashes作用相反在处理mysql和GET、POST的数据时,常常要对数据的引号进行转义操作。 PHP中有三个设置可以实现自动对’(单引号),”(双引号),\\(反斜线)和 NULL 字符转移。 PHP称之为魔术引号,这三项设置分别是 magic_quotes_gpc 影响到 HTTP 请求数据(GET,POST 和 COOKIE)。

不能在运行时改变。在 PHP 中默认值为 on。 magic_quotes_runtime 如果打开的话,大部份从外部来源取得数据并返回的函数,包括从数据库和文本文件,所返回的数据都会被反斜线转义。该选项可在运行的时改变,在 PHP 中的默认值为 off。 magic_quotes_sybase 如果打开的话,将会使用单引号对单引号进行转义而非反斜线。

此选项会完全覆盖 magic_quotes_gpc。如果同时打开两个选项的话,单引号将会被转义成 ”。而双引号、反斜线 和 NULL 字符将不会进行转义。

虽然方便的实现了对特殊符号的自动转义,但是这样会使得程序效率降低,并导致程序可移植变得麻烦。在不知道服务器ini设置的情况下,还需要调用get_magic_quotes_gpc() ,get_magic_quotes_runtime() 或ini_get()来检测状态。使用stripslashes去掉转义

谁来帮帮我!

下面是PHP5中PHP.INI中文详细配置,你试试

;;;;;;;;;;;;;;

;; Apache ;;

;;;;;;;;;;;;;;

[Apache]

; 仅在将PHP作为Apache模块时才有效。

engine = On

; 是否启用PHP解析引擎。

; 可以在httpd.conf中基于目录或者虚拟主机来打开或者关闭PHP解析引擎。

last_modified = Off

; 是否在Last-Modified应答头中放置该PHP脚本的最后修改时间。

xbithack = Off

; 是否不管文件结尾是什么,都作为PHP可执行位组来解析。

child_terminate = Off

; PHP脚本在请求结束后是否允许使用apache_child_terminate()函数终止子进程。

; 该指令仅在UNIX平台上将PHP安装为Apache1.3的模块时可用。其他情况下皆不存在。

;;;;;;;;;;;;;;;

;; PHP核心 ;;

;;;;;;;;;;;;;;;

[PHP-Core-DateTime]

; 前四个配置选项目前仅用于date_sunrise()和date_sunset()函数。

date.default_latitude = 31.7667

; 默认纬度

date.default_longitude = 35.2333

; 默认经度

date.sunrise_zenith = 90.583333

; 默认日出天顶

date.sunset_zenith = 90.583333

; 默认日落天顶

date.timezone =

; 未设定TZ环境变量时用于所有日期和时间函数的默认时区。

; 中国大陆应当使用"PRC"

; 应用时区的优先顺序为:

; 1. 用date_default_timezone_set()函数设定的时区(如果设定了的话)

; 2. TZ 环境变量(如果非空的话)

; 3. 该指令的值(如果设定了的话)

; 4. PHP自己推测(如果操作系统支持)

; 5. 如果以上都不成功,则使用 UTC

[PHP-Core-Assert]

assert.active = On

; 是否启用assert()断言评估

assert.bail = Off

; 是否在发生失败断言时中止脚本的执行

assert.callback =

; 发生失败断言时执行的回调函数

assert.quiet_eval = Off

; 是否使用安静评估(不显示任何错误信息,相当于error_reporting=0)。

; 若关闭则在评估断言表达式的时候使用当前的error_reporting指令值。

assert.warning = On

; 是否对每个失败断言都发出警告

[PHP-Core-SafeMode]

; 安全模式是为了解决共享服务器的安全问题而设立的。

; 但试图在PHP层解决这个问题在结构上是不合理的,

; 正确的做法应当是修改web服务器层和操作系统层。

; 因此在PHP6中废除了安全模式,并打算使用open_basedir指令取代之。

safe_mode = Off

;SYS

; 是否启用安全模式。

; 打开时,PHP将检查当前脚本的拥有者是否和被操作的文件的拥有者相同,

; 相同则允许操作,不同则拒绝操作。

safe_mode_gid = Off

;SYS

; 在安全模式下,默认在访问文件时会做UID比较检查。

; 但有些情况下严格的UID检查反而是不适合的,宽松的GID检查已经足够。

; 如果你想将其放宽到仅做GID比较,可以打开这个参数。

safe_mode_allowed_env_vars = "PHP_"

;SYS

; 在安全模式下,用户仅可以更改的环境变量的前缀列表(逗号分隔)。

; 允许用户设置某些环境变量,可能会导致潜在的安全漏洞。

; 注意: 如果这一参数值为空,PHP将允许用户更改任意环境变量!

safe_mode_protected_env_vars = "LD_LIBRARY_PATH"

;SYS

; 在安全模式下,用户不能更改的环境变量列表(逗号分隔)。

; 这些变量即使在safe_mode_allowed_env_vars指令设置为允许的情况下也会得到保护。

safe_mode_exec_dir = "/usr/local/php/bin"

;SYS

; 在安全模式下,只有该目录下的可执行程序才允许被执行系统程序的函数执行。

; 这些函数是:system, escapeshellarg, escapeshellcmd, exec, passthru,

; proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec

safe_mode_include_dir =

;SYS

; 在安全模式下,该组目录和其子目录下的文件被包含时,将跳过UID/GID检查。

; 换句话说,如果此处的值为空,任何UID/GID不符合的文件都不允许被包含。

; 这里设置的目录必须已经存在于include_path指令中或者用完整路径来包含。

; 多个目录之间用冒号(Win下为分号)隔开。

; 指定的限制实际上是一个前缀,而非一个目录名,

; 也就是说"/dir/incl"将允许访问"/dir/include"和"/dir/incls"

; 如果您希望将访问控制在一个指定的目录,那么请在结尾加上斜线。

sql.safe_mode = Off

;SYS

; 是否使用SQL安全模式。

; 如果打开,指定默认值的数据库连接函数将会使用这些默认值代替支持的参数。

; 对于每个不同数据库的连接函数,其默认值请参考相应的手册页面。

[PHP-Core-Safe]

allow_url_fopen = On

;ini

; 是否允许打开远程文件

allow_url_include = Off

;SYS

; 是否允许include/require远程文件。

disable_classes =

;ini

; 该指令接受一个用逗号分隔的类名列表,以禁用特定的类。

disable_functions =

;ini

; 该指令接受一个用逗号分隔的函数名列表,以禁用特定的函数。

enable_dl = On

;SYS

; 是否允许使用dl()函数。dl()函数仅在将PHP作为apache模块安装时才有效。

; 禁用dl()函数主要是出于安全考虑,因为它可以绕过open_basedir指令的限制。

; 在安全模式下始终禁用dl()函数,而不管此处如何设置。

expose_php = On

;ini

; 是否暴露PHP被安装在服务器上的事实(在http头中加上其签名)。

; 它不会有安全上的直接威胁,但它使得客户端知道服务器上安装了PHP。

open_basedir =

;SYS

; 将PHP允许操作的所有文件(包括文件自身)都限制在此组目录列表下。

; 当一个脚本试图打开一个指定目录树之外的文件时,将遭到拒绝。

; 所有的符号连接都会被解析,所以不可能通过符号连接来避开此限制。

; 特殊值'.'指定了存放该脚本的目录将被当做基准目录。

; 但这有些危险,因为脚本的工作目录可以轻易被chdir()改变。

; 对于共享服务器,在httpd.conf中灵活设置该指令将变得非常有用。

; 在Windows中用分号分隔目录,UNIX系统中用冒号分隔目录。

; 作为Apache模块时,父目录中的open_basedir路径将自动被继承。

; 指定的限制实际上是一个前缀,而非一个目录名,

; 也就是说"/dir/incl"将允许访问"/dir/include"和"/dir/incls",

; 如果您希望将访问控制在一个指定的目录,那么请在结尾加上一个斜线。

; 默认是允许打开所有文件。

[PHP-Core-Error]

error_reporting = E_ALL ~E_NOTICE

; 错误报告级别是位字段的叠加,推荐使用 E_ALL | E_STRICT

; 1 E_ERROR 致命的运行时错误

; 2 E_WARNING 运行时警告(非致命性错误)

; 4 E_PARSE 编译时解析错误

; 8 E_NOTICE 运行时提醒(经常是bug,也可能是有意的)

; 16 E_CORE_ERROR PHP启动时初始化过程中的致命错误

; 32 E_CORE_WARNING PHP启动时初始化过程中的警告(非致命性错)

; 64 E_COMPILE_ERROR 编译时致命性错

; 128 E_COMPILE_WARNING 编译时警告(非致命性错)

; 256 E_USER_ERROR 用户自定义的致命错误

; 512 E_USER_WARNING 用户自定义的警告(非致命性错误)

; 1024 E_USER_NOTICE 用户自定义的提醒(经常是bug,也可能是有意的)

; 2048 E_STRICT 编码标准化警告(建议如何修改以向前兼容)

; 4096 E_RECOVERABLE_ERROR 接近致命的运行时错误,若未被捕获则视同E_ERROR

; 6143 E_ALL 除E_STRICT外的所有错误(PHP6中为8191,即包含所有)

track_errors = Off

; 是否在变量$php_errormsg中保存最近一个错误或警告消息。

display_errors = On

; 是否将错误信息作为输出的一部分显示。

; 在最终发布的web站点上,强烈建议你关掉这个特性,并使用错误日志代替(参看下面)。

; 在最终发布的web站点打开这个特性可能暴露一些安全信息,

; 例如你的web服务上的文件路径、数据库规划或别的信息。

display_startup_errors = Off

; 是否显示PHP启动时的错误。

; 即使display_errors指令被打开,关闭此参数也将不显示PHP启动时的错误。

; 建议你关掉这个特性,除非你必须要用于调试中。

report_memleaks = On

; 是否报告内存泄漏。这个参数只在以调试方式编译的PHP中起作用,

; 并且必须在error_reporting指令中包含 E_WARNING

report_zend_debug = On

; 尚无说明文档

html_errors = On

; 是否在出错信息中使用HTML标记。

; 注意: 不要在发布的站点上使用这个特性!

docref_root = ;""

docref_ext = ;".html"

; 如果打开了html_errors指令,PHP将会在出错信息上显示超连接,

; 直接链接到一个说明这个错误或者导致这个错误的函数的页面。

; 你可以从下载php手册,

; 并将docref_root指令指向你本地的手册所在的URL目录。

; 你还必须设置docref_ext指令来指定文件的扩展名(必须含有'.')。

; 注意: 不要在发布的站点上使用这个特性。

error_prepend_string = ;"<font color=#f00>"

; 用于错误信息前输出的字符串

error_append_string = ;"</font>"

; 用于错误信息后输出的字符串

xmlrpc_errors = Off

xmlrpc_error_number = 0

; 尚无文档

[PHP-Core-Logging]

define_syslog_variables = Off

; 是否定义各种系统日志变量,如:$LOG_PID, $LOG_CRON 等等。

; 关掉它以提高效率的好主意。

; 你可以在运行时调用define_syslog_variables()函数来定义这些变量。

error_log =

; 将错误日志记录到哪个文件中。该文件必须对Web服务器用户可写。

; syslog 表示记录到系统日志中(NT下的事件日志, Unix下的syslog(3))

; 如果此处未设置任何值,则错误将被记录到Web服务器的错误日志中。

log_errors = Off

; 是否在日志文件里记录错误,具体在哪里记录取决于error_log指令。

; 强烈建议你在最终发布的web站点时使用日志记录错误而不是直接输出,

; 这样可以让你既知道那里出了问题,又不会暴露敏感信息。

log_errors_max_len = 1024

; 设置错误日志中附加的与错误信息相关联的错误源的最大长度。

; 这里设置的值对显示的和记录的错误以及$php_errormsg都有效。

; 设为 0 可以允许无限长度。

ignore_repeated_errors = Off

; 记录错误日志时是否忽略重复的错误信息。

; 错误信息必须出现在同一文件的同一行才被被视为重复。

ignore_repeated_source = Off

; 是否在忽略重复的错误信息时忽略重复的错误源。

[PHP-Core-Mail]

; 要使邮件函数可用,PHP必须在编译时能够访问sendmail程序。

; 如果使用其它的邮件程序,如qmail或postfix,确保使用了相应的sendmail包装。

; PHP首先会在系统的PATH环境变量中搜索sendmail,接着按以下顺序搜索:

; /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib

; 强烈建议在PATH中能够找到sendmail。

; 另外,编译PHP的用户必须能够访问sendmail程序。

SMTP = "localhost"

; mail()函数中用来发送邮件的SMTP服务器的主机名称或者IP地址。仅用于win32。

smtp_port = 25

; SMTP服务器的端口号。仅用于win32。

sendmail_from =

; 发送邮件时使用的"From:"头中的邮件地址。仅用于win32

; 该选项还同时设置了"Return-Path:"头。

sendmail_path = "-t -i"

;SYS

; 仅用于unix,也可支持参数(默认的是'sendmail -t -i')

; sendmail程序的路径,通常为"/usr/sbin/sendmail或/usr/lib/sendmail"。

; configure脚本会尝试找到该程序并设定为默认值,但是如果失败的话,可以在这里设定。

; 不使用sendmail的系统应将此指令设定为sendmail替代程序(如果有的话)。

; 例如,Qmail用户通常可以设为"/var/qmail/bin/sendmail"或"/var/qmail/bin/qmail-inject"。

; qmail-inject 不需要任何选项就能正确处理邮件。

mail.force_extra_parameters =

; 作为额外的参数传递给sendmail库的强制指定的参数附加值。

; 这些参数总是会替换掉mail()的第5个参数,即使在安全模式下也是如此。

[PHP-Core-ResourceLimit]

default_socket_timeout = 60

; 默认socket超时(秒)

max_execution_time = 30

; 每个脚本最大允许执行时间(秒),0 表示没有限制。

; 这个参数有助于阻止劣质脚本无休止的占用服务器资源。

; 该指令仅影响脚本本身的运行时间,任何其它花费在脚本运行之外的时间,

; 如用system()/sleep()函数的使用、数据库查询、文件上传等,都不包括在内。

; 在安全模式下,你不能用ini_set()在运行时改变这个设置。

memory_limit = 16M

; 一个脚本所能够申请到的最大内存字节数(可以使用K和M作为单位)。

; 这有助于防止劣质脚本消耗完服务器上的所有内存。

; 要能够使用该指令必须在编译时使用"--enable-memory-limit"配置选项。

; 如果要取消内存限制,则必须将其设为 -1 。

; 设置了该指令后,memory_get_usage()函数将变为可用。

max_input_time = -1

; 每个脚本解析输入数据(POST, GET, upload)的最大允许时间(秒)。

; -1 表示不限制。

post_max_size = 8M

; 允许的POST数据最大字节长度。此设定也影响到文件上传。

; 如果POST数据超出限制,那么___FCKpd___0

POST和

___FCKpd___0

FILES将会为空。

; 要上传大文件,该值必须大于upload_max_filesize指令的值。

; 如果启用了内存限制,那么该值应当小于memory_limit指令的值。

realpath_cache_size = 16K

;SYS

; 指定PHP使用的realpath(规范化的绝对路径名)缓冲区大小。

; 在PHP打开大量文件的系统上应当增大该值以提高性能。

realpath_cache_ttl = 120

;SYS

; realpath缓冲区中信息的有效期(秒)。

; 对文件很少变动的系统,可以增大该值以提高性能。

[PHP-Core-FileUpLoad]

file_uploads = On

;SYS

; 是否允许HTTP文件上传。

; 参见upload_max_filesize, upload_tmp_dir, post_max_size指令

upload_max_filesize = 2M

; 允许上传的文件的最大尺寸。

upload_tmp_dir =

;SYS

; 文件上传时存放文件的临时目录(必须是PHP进程用户可写的目录)。

; 如果未指定则PHP使用系统默认的临时目录。

[PHP-Core-MagicQuotes]

; PHP6将取消魔术引号,相当于下列指令全部为 Off

magic_quotes_gpc = On

; 是否对输入的GET/POST/Cookie数据使用自动字符串转义( ' " \ NULL )。

; 这里的设置将自动影响

___FCKpd___0

GEST

___FCKpd___0

POST

___FCKpd___0

COOKIE 数组的值。

; 若将本指令与magic_quotes_sybase指令同时打开,则仅将单引号(')转义为(''),

; 其它特殊字符将不被转义,即( " \ NULL )将保持原样!!

; 建议关闭此特性,并使用自定义的过滤函数。

magic_quotes_runtime = Off

; 是否对运行时从外部资源产生的数据使用自动字符串转义( ' " \ NULL )。

; 若打开本指令,则大多数函数从外部资源(数据库,文本文件等)返回数据都将被转义。

; 例如:用SQL查询得到的数据,用exec()函数得到的数据,等等

; 若将本指令与magic_quotes_sybase指令同时打开,则仅将单引号(')转义为(''),

; 其它特殊字符将不被转义,即( " \ NULL )将保持原样!!

; 建议关闭此特性,并视具体情况使用自定义的过滤函数。

magic_quotes_sybase = Off

; 是否采用Sybase形式的自动字符串转义(用 '' 表示 ')

[PHP-Core-HighLight]

highlight.bg = "#FFFFFF"

highlight测试数据ment = "#FF8000"

highlight.default = "#0000BB"

highlight.html = "#000000"

highlight.keyword = "#007700"

highlight.string = "#DD0000"

; 语法高亮模式的色彩(通常用于显示 .phps 文件)。

; 只要能被<font color=xxx>接受的东西就能正常工作。

[PHP-Core-Langue]

short_open_tag = On

; 是否允许使用"<? ?>"短标识。否则必须使用"<?php ?>"长标识。

; 除非你的php程序仅在受控环境下运行,且只供自己使用,否则请不要使用短标记。

; 如果要和XML结合使用PHP,可以选择关闭此选项以方便直接嵌入"<?xml ... ?>",

; 不然你必须用PHP来输出:<? echo '<?xml version="1.0"'; ?>

; 本指令也会影响到缩写形式"<?=",它和"<? echo"等价,要使用它也必须打开短标记。

asp_tags = Off

; 是否允许ASP风格的标记"<% %>",这也会影响到缩写形式"<%="。

; PHP6中将删除此指令

arg_separator.output = ""

; PHP所产生的URL中用来分隔参数的分隔符。

; 另外还可以用""或","等等。

arg_separator.input = ""

; PHP解析URL中的变量时使用的分隔符列表。

; 字符串中的每一个字符都会被当作分割符。

; 另外还可以用","等等。

allow_call_time_pass_reference = On

; 是否强迫在函数调用时按引用传递参数(每次使用此特性都会收到一条警告)。

; php反对这种做法,并在将来的版本里不再支持,因为它影响到了代码的整洁。

; 鼓励的方法是在函数声明里明确指定哪些参数按引用传递。

; 我们鼓励你关闭这一选项,以保证你的脚本在将来版本的语言里仍能正常工作。

auto_globals_jit = On

; 是否仅在使用到

___FCKpd___0

SERVER和

___FCKpd___0

ENV变量时才创建(而不是在脚本一启动时就自动创建)。

; 如果并未在脚本中使用这两个数组,打开该指令将会获得性能上的提升。

; 要想该指令生效,必须关闭register_globals和register_long_arrays指令。

auto_prepend_file =

auto_append_file =

; 指定在主文件之前/后自动解析的文件名。为空表示禁用该特性。

; 该文件就像调用了include()函数被包含进来一样,因此会使用include_path指令的值。

; 注意:如果脚本通过exit()终止,那么自动后缀将不会发生。

variables_order = "EGPCS"

; PHP注册 Environment, GET, POST, Cookie, Server 变量的顺序。

; 分别用 E, G, P, C, S 表示,按从左到右注册,新值覆盖旧值。

; 举例说,设为"GP"将会导致用POST变量覆盖同名的GET变量,

; 并完全忽略 Environment, Cookie, Server 变量。

; 推荐使用"GPC"或"GPCS",并使用getenv()函数访问环境变量。

register_globals = Off

; 是否将 E, G, P, C, S 变量注册为全局变量。

; 打开该指令可能会导致严重的安全问题,除非你的脚本经过非常仔细的检查。

; 推荐使用预定义的超全局变量:

___FCKpd___0

ENV,

___FCKpd___0

GET,

___FCKpd___0

POST,

___FCKpd___0

COOKIE,

___FCKpd___0

SERVER

; 该指令受variables_order指令的影响。

; PHP6中已经删除此指令。

register_argc_argv = On

; 是否声明$argv和$argc全局变量(包含用GET方法的信息)。

; 建议不要使用这两个变量,并关掉该指令以提高性能。

register_long_arrays = On

; 是否启用旧式的长式数组(HTTP_*_VARS)。

; 鼓励使用短式的预定义超全局数组,并关闭该特性以获得更好的性能。

; PHP6中已经删除此指令。

always_populate_raw_post_data = Off

; 是否总是生成$HTTP_RAW_POST_DATA变量(原始POST数据)。

; 否则,此变量仅在遇到不能识别的MIME类型的数据时才产生。

; 不过,访问原始POST数据的更好方法是 php://input 。

; $HTTP_RAW_POST_DATA对于enctype="multipart/form-data"的表单数据不可用。

unserialize_callback_func =

; 如果解序列化处理器需要实例化一个未定义的类,

; 这里指定的回调函数将以该未定义类的名字作为参数被unserialize()调用,

; 以免得到不完整的"__PHP_Incomplete_Class"对象。

; 如果这里没有指定函数,或指定的函数不包含(或实现)那个未定义的类,将会显示警告信息。

; 所以仅在确实需要实现这样的回调函数时才设置该指令。

; 若要禁止这个特性,只需置空即可。

y2k_compliance = On

; 是否强制打开2000年适应(可能在非Y2K适应的浏览器中导致问题)。

zend.ze1_compatibility_mode = Off

; 是否使用兼容Zend引擎I(PHP 4.x)的模式。

; 这将影响对象的复制、构造(无属性的对象会产生FALSE或0)、比较。

; 兼容模式下,对象将按值传递,而不是默认的按引用传递。

precision = 14

; 浮点型数据显示的有效位数。

serialize_precision = 100

; 将浮点型和双精度型数据序列化存储时的精度(有效位数)。

; 默认值能够确保浮点型数据被解序列化程序解码时不会丢失数据。

[PHP-Core-OutputControl]

; 输出控制函数很有用,特别是在已经输出了信息之后再发送HTTP头的情况下。

; 输出控制函数不会作用于header()或setcookie()等函数发送的HTTP头,

; 而只会影响类似于echo()函数输出的信息和嵌入在PHP代码之间的信息。

implicit_flush = Off

; 是否要求PHP输出层在每个输出块之后自动刷新数据。

; 这等效于在每个 print()、echo()、HTML块 之后自动调用flush()函数。

; 打开这个选项对程序执行的性能有严重的影响,通常只推荐在调试时使用。

; 在CLI SAPI的执行模式下,该指令默认为 On 。

output_buffering = 0

; 输出缓冲区大小(字节)。建议值为4096~8192。

; 输出缓冲允许你甚至在输出正文内容之后再发送HTTP头(包括cookies)。

; 其代价是输出层减慢一点点速度。

; 设置输出缓冲可以减少写入,有时还能减少网络数据包的发送。

; 这个参数的实际收益很大程度上取决于你使用的是什么Web服务器以及什么样的脚本。

output_handler =

; 将所有脚本的输出重定向到一个输出处理函数。

; 比如,重定向到mb_output_handler()函数时,字符编码将被透明地转换为指定的编码。

; 一旦你在这里指定了输出处理程序,输出缓冲将被自动打开(output_buffering=4096)。

; 注意0: 此处仅能使用PHP内置的函数,自定义函数应在脚本中使用ob_start()指定。

; 注意1: 可移植脚本不能依赖该指令,而应使用ob_start()函数明确指定输出处理函数。

; 使用这个指令可能会导致某些你不熟悉的脚本出错。

; 注意2: 你不能同时使用"mb_output_handler"和"ob_iconv_handler"两个输出处理函数。

; 你也不能同时使用"ob_gzhandler"输出处理函数和zlib.output_compression指令。

; 注意3: 如果使用zlib.output_handler指令开启zlib输出压缩,该指令必须为空。

php是????????

PHP 是一种流行的开放源代码的脚本语言。PHP早期的缩写是“Personal HomePage”,现在官方正式名称为“PHP: Hypertext Preprocessor”的递归缩写。

PHP主要用于服务器端应用程序及动态网页上,但是也可以用在命令列上执行,或是开发独立的窗口程序接口(GUI)

开发历史

1994年,加拿大籍的程序设计师Rasmus Lerdorf开发了一组以C语言为基础的CGI程序,目的是要取代一些用来维护他个人网站的Perl程序,不久之后,他把这些CGI程序公布并取名为"Personal Home Page Tools",这也是PHP名称的由来。Rasmus Lerdorf一直维护PHP语言直到PHP第二版,使用的解析引擎为PHP/FI。

[编辑] PHP 3

1997年,Tel Aviv 公司的Zeev Suraski 和 Andi Gutmans 改写了原本的解析引擎PHP/FI,并把PHP重新命名为"PHP: Hypertext Preprocessor"。在1998年公布了PHP 3提供大众下载测试,1999年两人在以色列成立了Zend Technologies公司来投入PHP的开发工作,并且开始制作下一代的解析引擎 - Zend引擎。

[编辑] PHP 4

2000年5月22日,以Zend引擎 1.0为解析引擎的PHP 4.0 发布。这也是PHP开始大受欢迎的版本,目前PHP 4还有在做安全性的更新,最新的版本是2006年九月发布的PHP 4.4.4版。

[编辑] PHP 5

2004年7月13日,以Zend引擎II为基础的PHP 5.0 发布,同时也加入了许多新特性:

更完整的面向对象支持:基本上到PHP 5之后PHP才算是比较完整的面向对象语言。

透过新的Zend引擎,提升了PHP执行的速度。

对MySQL数据库有更完整的支持。

更佳的XML支持。

内建SQLite数据库(但在PHP 5.1取消了内建,改用扩展函数库的方式)。

整合了SOAP的支持。

提供许多程序语言有的例外处理功能。

实验性的介绍新的数据库存取接口PDO(PHP Data Objects),在PHP5.1则开始缺省安装PDO。

最新的版本是2006年11月发布的5.2.0

[编辑] 应用

PHP主要应用在网页服务器,处理使用者的输入来产生网页。但是命令列脚本或是视窗程序接口(GUI)的开发也是PHP的主要应用范围

[编辑] 服务器端脚本语言

PHP最初就是设计成服务器端脚本语言,因此这也是PHP应用最广的部份。在此领域有许多其他的竞争者,例如ASP.NET、ColdFusion、JSP、Perl、Ruby on Rails等等。

在网络工业领域,PHP是LAMP架构的其中一部分,所谓的LAMP是指Linux、Apache、MySQL、以及PHP所组成的网络环境,提供了许多安全、可靠的网页应用程序。PHP目前已经是全世界最受欢迎的服务器端脚本语言,跨平台的特性更是让PHP广为流传,目前共有1800万台服务器安装有PHP。

[编辑] 命令列脚本

PHP也可以用命令列上执行来使用,例如分析纪录档、系统管理工作等。这些工作过去都是由一些其他的脚本语言例如Perl, Python, awk等来执行,PHP的在命令列上的使用则逐渐增加。

[编辑] 视窗程序接口(GUI)

透过和GUI函式库GTK+的结合,PHP也可以应用在视窗程序接口(GUI)的开发上,目前的应用还不普遍。

[编辑] 语法

Hello World程序

下面是一个在标准输出设备上输出Hello World的简单程序,这种程序通常作为开始学习编程语言时的第一个程序:

<?php

echo 'Hello World!';

?>

或

<?

print 'Hello World!';

?>

从中我们可以看出,PHP语言是嵌入在“<?php...?>”或“<?...?>” 之间的部分。而这个程序最终结果将是:

Hello World!

但建议您使用 <?php ... ?> 此种方式撰写您的程序,因为在XML中使用<? ?>作为标签,在php缺省的设定档php.ini中,通常此设定值为Off,若您有打开此设定的需要,您可以参见 php.ini 中关于 “short_open_tag = Off ”这部份的设定。

[编辑] PHP相关资源

[编辑] 函式库

主条目:PHP函式库列表

内建多样化的函数是PHP主要的特点之一,这些开放程序码的函数提供了各种不同的功能,例如档案处理、FTP、字串处理、等等。这些函数的使用方法和C语言相近(例如printf),这也是PHP广为流行的原因之一。

除了内建的函数之外,PHP也提供了很多延伸函式库(extension),像是各种数据库连接函数、资料压缩函数、图形处理等等。有些延伸函式库需要从PECL(PHP Extension Community Library)取得。

[编辑] 原始码编码和加速

PHP原始码是可以直接读取的,即使放到服务器上执行也是一样。虽然让PHP多了弹性,但相对的会造成安全危机和性能下降的问题。

因此透过PHP编码器,可以保护PHP的原始码不被读取(对商业软件来说特别有需求),也可以提升执行的效能。有许多公司或团体开发PHP的编码器,将PHP程序编译成字节码,再透过服务器上安装对应的程序来执行PHP脚本。

除了透过编码器加速之外,PHP还可以透过动态的快取机制来提升速度,加速工具有商业版的(例如Zend Platform),也有开放原始码的(例如eAccelerator, APC)。

[编辑] 样板引擎

Smarty

Smarty是一个php模板引擎.

更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法,可以描述为应用程序员和美工扮演了不同的角色,因为在大多数情况下 ,他们不可能是同一个人.例如,你正在创建一个用于浏览新闻的网页,新闻标题,标签栏,作者和内容等都是内容要素,他们并不包含应该怎样去呈现.在Smarty的程序里,这些被忽略了.模板设计者们编辑模板,组合使用html标签和模板标签去格式化这些要素的输出(html表格,背景色,字体大小,样式表,等等).有一天程序员想要改变文章检索的方式(也就是程序逻辑的改变).这个改变不影响模板设计者,内容仍将准确的输出到模板.同样的,哪天美工吃多了想要完全重做界面,也不会影响到程序逻辑.

程序员可以改变逻辑而不需要重新构建模板,模板设计者可以改变模板而不影响到逻辑

[编辑] PEAR

[编辑] PECL

[编辑] 对PHP的批评

PHP没有原生支援Unicode或是多位元字集(例如中文、日文、韩文等需要用两个以上为原来表示的字集),导致用PHP写的软件在国际语言化上遇到相当多的困难。

PHP没有名称空间(Namespace)的设计,降低了PHP语言设计上的弹性。预计在PHP 6会加入名称空间的特性。

PHP的函数命名规则非常的混乱,而且许多函数往往作用类似,只是传递的参数不同就要分成不同的函数,导致编写PHP程序时需要做相当多的手册查询工作,降低开发的效率。

PHP的魔术引号(magic quotes)功能可以自动处理使用者输入字串中的跳脱字符,有效避免SQL隐码攻击(SQL injection),但是因为不是每个使用者的输入都会写入到数据库,处理这些没有写入数据库的字串便浪费了效能。此外不是每个PHP环境都会开启魔术引号,程序设计时需要便需要对不同的服务器环境做因应,造成程序设计上的麻烦。魔术引号功能预计将会于PHP 6时取消。

有些PHP延伸函式库不是执行绪安全(threadsafe),导致PHP安装在多执行绪的服务器例如Apache 2上会发生不稳定的状况。

怎样打开“魔术引号(Magic Quote)GPC”

在 PHP 中是默认打开“魔术引号(Magic Quote)GPC”的。开启magic_quote_gpc=on之后,相当于使用addslshes()这个函数。

魔术引号(Magic Quote)是一个自动将进入 PHP 脚本的数据进行转义的过程。最好在编码时不要转义而在运行时根据需要而转义。

一、什么是魔术引号

当打开时,所有的 '(单引号),"(双引号),\(反斜线)和 NULL 字符都会被自动加上一个反斜线进行转义。这和 addslashes() 作用完全相同。

一共有三个魔术引号指令:

1、magic_quotes_gpc

影响到 HTTP 请求数据(GET,POST 和 COOKIE)。不能在运行时改变。在 PHP 中默认值为 on。

参见 get_magic_quotes_gpc()。

2、magic_quotes_runtime

如果打开的话,大部份从外部来源取得数据并返回的函数,包括从数据库和文本文件,所返回的数据都会被反斜线转义。该选项可在运行的时改变,在 PHP 中的默认值为 off。

参见 set_magic_quotes_runtime() 和 get_magic_quotes_runtime()。

3、magic_quotes_sybase

如果打开的话,将会使用单引号对单引号进行转义而非反斜线。此选项会完全覆盖 magic_quotes_gpc。如果同时打开两个选项的话,单引号将会被转义成 ''。而双引号、反斜线 和 NULL 字符将不会进行转义。

如何取得其值参见 ini_get()。

二、为什么要用魔术引号

1、对初学者很有用

魔术引号在 PHP 中用来实现避免初学者的代码更危险。尽管SQL 注入在魔术引号打开的情况下仍然有可能实现,但起码系统的风险减少很多了。

2、方便使用

当向数据库中插入数据时,魔术引号所做的就是自动对所有的GET、POST、COOKIE 数据运用 addslashes() 函数。

三、为什么不用魔术引号

1、可移植性

编程时认为其打开或并闭都会影响到移植性。可以用get_magic_quotes_gpc() 来检查是否打开,并据此编程。

2、性能

由于并不是每一段被转义的数据都要插入数据库的,如果所有进入PHP 的数据都被转义的话,那么会对程序的执行效率产生一定的影响。在运行时调用转义函数(如 addslashes())更有效率。

尽管 php.ini-dist 默认打开了这个选项,但是php.ini-recommended 默认却关闭了它,主要是出于性能的考虑。

3、不便

由于不是所有数据都需要转义,在不需要转义的地方看到转义的数据就很烦。比如说通过表单发送邮件,结果看到一大堆的 \'。针对这个问题,可以使用stripslashes() 函数处理。

四、关闭魔术引号

magic_quotes_gpc 指令只能在系统级关闭,不能在运行时。也就是说不能用 ini_set()。

求解这段PHP代码是什么意思,作用是什么

get_magic_quotes_gpc()函数是PHP内置的函数,这个函数的作用就是得到php.ini设置中magic_quotes_gpc选项的值。

如果magic_quotes_gpc=On,PHP解析器就会自动为post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误。

从5.4.0版本开始,始终返回 FALSE,因为这个魔术引号功能已经从 PHP 中移除了。

这段代码解释为:

if?(get_magic_quotes_gpc())?{//如果设置了此参数,执行下面的代码

//设置自定义函数,对传入的参数进行转义

????function?stripslashes_deep($value)

????{

????//判断传入的值是数组时回调使用自身,对数组内所有的子数组进行细化到字符串,然后对字符串进行转义

????????$value?=?is_array($value)???array_map('stripslashes_deep',?$value)?:?stripslashes($value);

????????return?$value;

????}

????//对POST、GET、COOKIE、REQUEST(所有提交的数据)数据进行上面自定义函数的转义,并递归到每一个子数组。

????$_POST?=?array_map('stripslashes_deep',?$_POST);

????$_GET?=?array_map('stripslashes_deep',?$_GET);

????$_COOKIE?=?array_map('stripslashes_deep',?$_COOKIE);

????$_REQUEST?=?array_map('stripslashes_deep',?$_REQUEST);

}

关于关闭php魔术引号的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于关闭php魔术引号 关闭php魔术引号怎么打的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did197420
更新时间:2023-04-26   阅读:20次

上一篇: php数组顺序反转 php数组排序从小到大函数

下一篇:php格式化日期字符串 php日期格式转换

相关资讯

最新资料更新

  • 1.php+rpush的简单介绍
  • 2.php查询数组找到 php查找数组元素
  • 3.无法下载file.php 无法下载filedownload
  • 4.基于PHP日记网站 phpstudy网站日志
  • 5.phpajax日历 php如何生成一年的日历
  • 6.phpmysql框架 php框架yii
  • 7.php教程全局交流 phpunit教程
  • 8.nginx隐藏.php nginx隐藏ip
  • 9.zblogphp分类 zblog asp
  • 10.php接口和抽象类的区别 php抽象函数
  • 11.phpsql过滤类 php过滤器
  • 12.imagephp缩放 缩放图像可以改变图像的分辨率吗
  • 13.php的if语句 php的if语句运用
  • 14.phpnodelay的简单介绍
  • 15.php数字语音播报 php语音转文字
  • 16.PHP数组多值排序 php数组按值排序
  • 17.php例子下载 php资料下载
  • 18.php事务的隔离级别 php事务处理
  • 19.php中文注释乱码 php注释语句
  • 20.关于php2esgbi的信息

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]