`
wangyalei
  • 浏览: 51977 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

php学习笔记(开发中常设置的内置函数)

    博客分类:
  • PHP
阅读更多

为了使自己的程序在不同的平台中拥有更好的兼容性,很多时候我们都要获取当前Php的运行环境参数。比如我们常用到的:获取magic_quotes_gpc状态,来决定当表单提交时我们是否转义(addslashes)数据;设定max_execution_time来延长程序的执行时间;设定error_reporting使自己的项目在开发与运营阶段切换;设定memory_limit加大内存等等… 在我们看一下开源的cms 系统中 会常遇到一些特殊的php的内置函数

  

1。 php函数 set_magic_quotes_runtime(0); 可以修改php.ini中 magic_quotes_runtime boolean的设置当你的数据中有一些 \  、"、' 又想不被过滤掉的时候,它就很有用,会在这些字符前加上\进行转义 例如:

中国\地大物博"哈哈"-------》中国\\地大物博\"哈哈\"  其中  0-关闭 1-打开 php程序中检测状get_magic_quotes_runtime

 

2。: void set_time_limit (int seconds)

设定一个程式所允许执行的秒数,如果到达限制的时间,程式将会传回错误。它预设的限制时间是30秒,max_execution_time的值定义在结构档案中(在PHP3中叫做php3.ini,在PHP4则叫做php.ini),如果将秒数设为0,表示无时间上的限制。 例如在用PHP导入数据库的时候就会用到。

 

3。error_reporting() 设置 PHP 的报错级别并返回当前级别。

任意数目的以上选项都可以用“或”来连接(用 OR 或 |),这样可以报告所有需要的各级别错误。例如,下面的代码关闭了用户自定义的错误和警告,执行了某些操作,然后恢复到原始的报错级别:

//禁用错误报告
error_reporting(0);

//报告运行时错误
error_reporting(E_ERROR | E_WARNING | E_PARSE);

//报告所有错误
error_reporting(E_ALL);

 

4。set_include_path:

举个例子:
你的一个页面有这样的语句:
include('/inc/sql.php');
include('/inc/conn.php');
而你突然发现我把这些要包含的文件放在inc目录下不安全,怎么办,要改,我想放到include目录中,好的,这么多页面不累死才怪:有没有好的方法!有!!!!!!!
在config.inc.php中写着么一句:

set_include_path(get_include_path() .'/include')动态的修改!

 

5。extension_loaded

extension_loaded --- 判断扩展模块是否载入

  语法: bool extension_loaded (string name) 

  如果参数name指定的扩充模组已载入则此函数返回true,可以用phpinfo()来看见各种扩充模组的名称

 

6。gethostbyname()  返回对应于给定主机名的主机信息。

 

 

Php代码 复制代码

  1. ini_set(string varname, string newvalue ) : //设定环境配置的参数   
  2. ini_get(string varname) : //获取环境配置的参数  
ini_set(string varname, string newvalue ) : //设定环境配置的参数
ini_get(string varname) : //获取环境配置的参数

 

  PHP ini_set函数是设置选项中的值,在执行函数后生效,脚本结束的时候,这个设置也失效。不是所有的选项都能被改函数设置的。具体那些值能够设置,可以查看手册中的列表。

 

 就是能够设置php.ini中的选项值比如,display_error选项关闭 了,但是你要显示程序中的错误信息,方便你调试程序,那么就可以使用PHP ini_set函数:

 

Php代码 复制代码
ini_set('display_errors', 'On');
 

 那么在你这个页面的程序都会显示错误信息了,而且你还可以使用error_reporting来设置显示的错误信息级别。

 如果你需要增加脚本执行时间,那么可以设置:

 

 

Php代码 复制代码

ini_set('max_execution_time', '180');
 

  那么脚本执行时间就由默认的30秒变为180秒,当然,你也可以使用set_time_limit()来设置。

 

  其实你把PHP ini_set函数和ini_get结合使的话,非常好。比如你想在配置文件里添加自己的包含文件路径,但是你有没有权限更改php.ini,那么你可以结合两个函数:

 

 

Php代码 复制代码
ini_set('include_path',ini_get('include_path').':/your_include_dir:');
 

 PHP配置函数ini_get()相信很多人都使过,就是获取配置文件中某一个选项的值,如果是true值就返回1,如果是false值就返回0,字符串就返回字符串。

 

  比如手册中的例子:

 

Php代码 复制代码

 

<?php 
/* Our php.ini contains the following settings: display_errors = On register_globals = Off post_max_size = 8M */ 

echo 'display_errors = ' . ini_get('display_errors') . " "; //显示错误是否打开 
echo 'register_globals = ' . ini_get('register_globals') . " "; //全局变量是否打开 
echo 'post_max_size = ' . ini_get('post_max_size') . " "; //最多能提交的文件大小 
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . " "; 

?>

 

  输出:

 

  display_errors = 1

  register_globals = 0

  post_max_size = 8M

  post_max_size+1 = 9

 

  PHP配置函数ini_get()主要是为了获取配置文件,可以方便你很多操作。 比如你想操作字符串过滤,但是又不清楚 magic_quotes_gpc有没有打开,所以你就可以这样写一个函数:

 

 

Php代码 复制代码
<?php 
 /* 字符串过滤函数 */ 
function stringFilter($str) { 
	if (ini_get('magic_quotes_gpc)') { return $str; } else { return addslashes($str); } 
}
?>

 

  当然,如果你无法知道你的全局变量是否打开,也可以定制这样的函数:

 

Php代码 复制代码

 

<?php 
/* 变量检测函数 */ 
function getGetVar($var) { 
	if (ini_set('register_gobals')){ return $var; } else { return $_GET['var']; } 
}
?>

 

  当然,你可以用PHP配置函数ini_get()做很多用途,自己慢慢体会。


getenv与$_SERVER

$spager=$_SERVER["SERVER_NAME"];
或者
$spager=getenv('SERVER_NAME');
都可以得到同样结果
...
SERVER是服务器超级全局变量数组
也就是可以在任何页面调用.
这数组里面保存了 很多东西
例如服务器IP 客户IP
浏览器型号..等等
我们可以使用这些信息 对用户做一些判断..
例如你看到的图片 可以显示你的IP地址
就是通过这个数组 加上IMAGE 函数实现的
下面我列出$_SERVER内容
-------------------------------------
“GATEWAY_INTERFACE”
服务器使用的 CGI 规范的版本。例如,“CGI/1.1”。

“SERVER_NAME”
当前运行脚本所在服务器主机的名称。如果该脚本运行在一个虚拟主机上,该名称是由那个虚拟主机所设置的值决定。

“SERVER_SOFTWARE”
服务器标识的字串,在响应请求时的头信息中给出。

“SERVER_PROTOCOL”
请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。

“REQUEST_METHOD”
访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。

注: 如果请求的方式是 HEAD,PHP 脚本将在送出头信息后中止(这意味着在产生任何输出后,不再有输出缓冲)。

“REQUEST_TIME”
请求开始时的时间戳。从 PHP 5.1.0 起有效。

“QUERY_STRING”
查询(query)的字符串(URL 中第一个问号 ? 之后的内容)。

“DOCUMENT_ROOT”
当前运行脚本所在的文档根目录。在服务器配置文件中定义。

“HTTP_ACCEPT”
当前请求的 Accept: 头信息的内容。

“HTTP_ACCEPT_CHARSET”
当前请求的 Accept-Charset: 头信息的内容。例如:“iso-8859-1,*,utf-8”。

“HTTP_ACCEPT_ENCODING”
当前请求的 Accept-Encoding: 头信息的内容。例如:“gzip”。

“HTTP_ACCEPT_LANGUAGE”
当前请求的 Accept-Language: 头信息的内容。例如:“en”。

“HTTP_CONNECTION”
当前请求的 Connection: 头信息的内容。例如:“Keep-Alive”。

“HTTP_HOST”
当前请求的 Host: 头信息的内容。

“HTTP_REFERER”
链接到当前页面的前一页面的 URL 地址。不是所有的用户代理(浏览器)都会设置这个变量,而且有的还可以手工修改 HTTP_REFERER。因此,这个变量不总是真实正确的。

“HTTP_USER_AGENT”
当前请求的 User-Agent: 头信息的内容。该字符串表明了访问该页面的用户代理的信息。一个典型的例子是:Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)。也可以使用 get_browser() 得到此信息。

“HTTPS”
如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。

“REMOTE_ADDR”
正在浏览当前页面用户的 IP 地址。

“REMOTE_HOST”
正在浏览当前页面用户的主机名。反向域名解析基于该用户的 REMOTE_ADDR。

注: 必须配置 Web 服务器来建立此变量。例如 Apache 需要在 httpd.conf 中有 HostnameLookups On。参见 gethostbyaddr()。

“REMOTE_PORT”
用户连接到服务器时所使用的端口。

“SCRIPT_FILENAME”
当前执行脚本的绝对路径名。

注: 如果脚本在 CLI 中被执行,作为相对路径,例如 file.php 或 ../file.php,$_SERVER['SCRIPT_FILENAME'] 将包含用户指定的相对路径。


“SERVER_ADMIN”
该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。

“SERVER_PORT”
服务器所使用的端口。默认为“80”。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。

“SERVER_SIGNATURE”
包含服务器版本和虚拟主机名的字符串。

“PATH_TRANSLATED”
当前脚本所在文件系统(不是文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。

 

PHP extract() 函数从数组中把变量导入到当前的符号表中。

  对于数组中的每个元素,键名用于变量名,键值用于变量值。

  第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突。

  本函数返回成功设置的变量数

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics