当前位置:  编程技术>php
本页文章导读:
    ▪php中dirname()和__FILE__常量的用法      在php中,__FILE__表示当前所在文件的绝对路径包括文件名,dirname(__FILE__)表示当前文件的绝对路径,basename(__FILE__)表示当前文件的文件名称。dirname(__FILE__)."/f/".basename(__FILE__)则表示当前文件所.........
    ▪php中的get_magic_quotes_gpc()函数      php内置函数get_magic_quotes_gpc(),获取php.ini设置中magic_quotes_gpc选项的值。 magic_quotes_gpc选项: 如果magic_quotes_gpc=On,PHP解析器就会自动为post、get、cookie过来的数据增加转义字符“\”,以确保这些.........
    ▪有关php中加密函数的一些总结      在php中实现加密的函数,不外乎如下: 1,md5() 2,sha1() 3,crc32() 4,crypt() 5,uniqid() 1,md5()函数 定义和用法 md5() 函数计算字符串的 MD5 散列。 md5() 函数使用 RSA 数据安全,包括 MD5 报文.........

[1]php中dirname()和__FILE__常量的用法
    来源: 互联网  发布时间: 2013-12-24

在php中,__FILE__表示当前所在文件的绝对路径包括文件名,dirname(__FILE__)表示当前文件的绝对路径,basename(__FILE__)表示当前文件的文件名称。dirname(__FILE__)."/f/".basename(__FILE__)则表示当前文件所在目录下的f目录下的,文件名称为dirname(__FILE__)的文件,require表示包含该文件到这个文件。

以下是有关php中dirname()与__FILE__相结合的例子,供大家参考。

1,dirname(__FILE___) 函数返回的是脚本所在路径。
比如文件 b.php 包含如下内容:
 

代码示例:
<?php
$basedir = dirname(__FILE__);
?>
 

如果b.php被其他目录里的a.php文件require 或者 include 去引用的话。
变量$basedir 的内容还是b.php所在的那个文件夹的路径。
而不是变成a.php文件所在的目录。

2,dirname(__FILE__) 一般会返回文件所的当前目录到系统根目录的一个目录结构。
不会返回当前的文件名称。
dirname(__FILE__) 也可能返回一个 . (当前目录)
原因是:
b.php 文件在 http.conf 或者 PHP 配置开发环境的默认WEB目录下。
比如 WEB_ROOT 为: "C:/root/www/",b.php文件路径为: "C:/root/www/b.php"。

3,使用方法提示,
如果重复一次可以把目录往上提升一个层次:
比如:

代码示例:
$d = dirname(dirname(__FILE__));
 

其实就是把一个目录给dirname()作参数了,因为dirname()返回最后的目录不带\\或者是/。
所以,重复使用时可以认为 dirname()把最下层的目录当成文件名来处理了,照常返回当前目录的上级目录。
这样重复就得到了它的上级上当。

4,包含得到上一级目录的文件
 

代码示例:
include(dirname(__FILE__).''/../filename

就介绍这些吧,希望对大家有所帮助。


    
[2]php中的get_magic_quotes_gpc()函数
    来源: 互联网  发布时间: 2013-12-24

php内置函数get_magic_quotes_gpc(),获取php.ini设置中magic_quotes_gpc选项的值。

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

在magic_quotes_gpc=On的情况下,如果输入的数据包含:
单引号(’)、双引号(”)、反斜线(\)与 NUL(NULL 字符)等字符都会被加上反斜线。
这些转义是必须的,如果这个选项为off,那么就必须调用addslashes()函数来为字符串增加转义。

正是因为这个选项必须为On,但是又让用户进行配置的矛盾,在PHP6中删除了这个选项,一切的编程都需要在magic_quotes_gpc=Off下进行了。
这样的环境下,如果不对用户的数据进行转义,后果不仅仅是程序错误而已了。
同样的会引起数据库被注入攻击的危险。

为了迎接php6的到来,以后不要依靠这个选项为on了。

当magic_quotes_gpc=On时,函数get_magic_quotes_gpc()就会返回1。
当magic_quotes_gpc=Off时,函数get_magic_quotes_gpc()就会返回0。
所以,get_magic_quotes_gpc()函数,就是用来得到环境变量magic_quotes_gpc的值。

不过,在PHP6中删除了magic_quotes_gpc选项,可能在php6中这个函数就不存在了。


    
[3]有关php中加密函数的一些总结
    来源: 互联网  发布时间: 2013-12-24

在php中实现加密的函数,不外乎如下:
1,md5()
2,sha1()
3,crc32()
4,crypt()
5,uniqid()

1,md5()函数
定义和用法
md5() 函数计算字符串的 MD5 散列。
md5() 函数使用 RSA 数据安全,包括 MD5 报文摘译算法。
如果成功,则返回所计算的 MD5 散列,如果失败,则返回 false。

语法
md5(string,raw)

参数 描述
string 
必需。规定要计算的字符串。
raw
raw 

可选。规定十六进制或二进制输出格式:
TRUE - 原始 16 字符二进制格式
FALSE - 默认。32 字符十六进制数
注释:该参数是 PHP 5.0 中添加的。

例子:

<?php
$str = "Hello";
echo md5($str);
?>

输出:
8b1a9953c4611296a827abf8c47804d7

2,sha1()函数:

定义和用法
sha1() 函数计算字符串的 SHA-1 散列。
sha1() 函数使用美国 Secure Hash 算法 1。
如果成功,则返回所计算的 SHA-1 散列,如果失败,则返回 false。

语法
sha1(string,raw)

参数 描述
string 必需。规定要计算的字符串。
charlist 
可选。规定十六进制或二进制输出格式:
TRUE - 原始 20 字符二进制格式
FALSE - 默认。40 字符十六进制数

注释:该参数是 PHP 5.0 中添加的。

3,crc32()函数:
定义和用法
crc32() 函数计算一个字符串的 crc32 多项式。
该函数可用于验证数据的完整性。

语法
crc32(string)
string必需。规定要计算的字符串。

说明
生成 string 参数的 32 位循环冗余校验码多项式。这通常用于检查传输的数据是否完整。
提示和注释
提示:由于 PHP 的整数是带符号的,许多 crc32 校验码将返回负整数,因此您需要使用 sprintf()() 或 printf() 的 "%u" 格式符来获取表示无符号 crc32 校验码的字符串。

例子,将在使用以及不使用 "%u" 格式符的情况下,输出 crc32() 的结果(注意结果是相同的):

<?php
$str = crc32("Hello world!");
echo 'Without %u: '.$str."<br />";
echo 'With %u: ';
printf("%u",$str);
?>

输出:
Without %u: 461707669
With %u: 461707669

例2,在本例中,将在使用以及不使用 "%u" 格式符的情况下,输出 crc32() 的结果(注意结果是不相同的):

<?php
$str = crc32("Hello world.");
echo 'Without %u: '.$str."<br />";
echo 'With %u: ';
printf("%u",$str);
?>

输出:
Without %u: -1959132156
With %u: 2335835140
4,uniqid()函数:
定义和用法
uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。

语法
uniqid(prefix,more_entropy)
prefix可选。为 ID 规定前缀。如果两个脚本在相同的微妙生成 ID,该参数很有用。
more_entropy可选。规定位于返回值末尾的更多的熵。

说明
如果 prefix 参数为空,则返回的字符串有 13 个字符串长。如果 more_entropy 参数设置为 true,则是 23 个字符串长。
如果 more_entropy 参数设置为 true,则在返回值的末尾添加额外的熵(使用组合线形同余数生成程序),这样可以结果的唯一性更好。

返回值
以字符串的形式返回唯一标识符。

提示和注释
注释:由于基于系统时间,通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID,请使用 md5() 函数(请在字符串函数参考中查找)。

例子:

<?php
echo uniqid();
?>

输出类似:
4415297e3af8c
5,crypt()函数:
定义和用法
crypt() 函数返回使用 DES、Blowfish 或 MD5 加密的字符串。
在不同的操作系统上,本函数的行为不同,某些操作系统支持一种以上的算法类型。在安装时,PHP 会检查什么算法可用以及使用什么算法。

语法
crypt(str,salt)
str必需。规定要编码的字符串。
salt

可选。用于增加被编码字符数目的字符串,以使编码更加安全。
如果未提供 salt 参数,则每次调用该函数时会随机生成一个。

提示和注释
提示:解密函数是没有的。crypt() 函数使用一种单向算法。

例子,将测试不同的算法:

<?php
if (CRYPT_STD_DES == 1)
{
echo "Standard DES: ".crypt("hello world")."\n<br />";
}
else
{
echo "Standard DES not supported.\n<br />";
}

if (CRYPT_EXT_DES == 1)
{
echo "Extended DES: ".crypt("hello world")."\n<br />";
}
else
{
echo "Extended DES not supported.\n<br />";
}

if (CRYPT_MD5 == 1)
{
echo "MD5: ".crypt("hello world")."\n<br />";
}
else
{
echo "MD5 not supported.\n<br />";
}

if (CRYPT_BLOWFISH == 1)
{
echo "Blowfish: ".crypt("hello world");
}
else
{
echo "Blowfish DES not supported.";
}
?>

输出类似(依赖于操作系统):
Standard DES: $1$r35.Y52.$iyiFuvM.zFGsscpU0aZ4e.
Extended DES not supported.
MD5: $1$BN1.0I2.$8oBI/4mufxK6Tq89M12mk/
Blowfish DES not supported.

说明,确切的算法依赖于 salt 参数的格式和长度。

以下是与 crypt() 函数一起使用的一些常量。
在安装时,由 PHP 设置这些常量:
[CRYPT_SALT_LENGTH]
[CRYPT_STD_DES]
[CRYPT_EXT_DES]
[CRYPT_MD5]
[CRYPT_BLOWFISH]


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3