Home >Backend Development >PHP Tutorial > php有关问题解决

php有关问题解决

WBOY
WBOYOriginal
2016-06-13 13:14:03672browse

php问题解决

?

php问题解决:

?

1: 字符串转义函数:?

?

?1>插入mysql数据库转义函数: mysqli_escape_string();

?2>addslashes() 使用反斜线引用字符串

? ? 描述:返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。

? ? ? ? ? 这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)

? ?须注意:默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。

不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。

遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。

?3>stripslashes()?

本函数可去掉字符串中的反斜线字符。若是连续二个反斜线,则去掉一个,留下一个。若只有一个反斜线,就直接去掉。

?4> htmlspecialchars ? ? ? ? ? ?把一些预定义的字符转换为 HTML 实体

?5> htmlspecialchars_decode ? ? 把一些预定义的 HTML 实体转换为字符

?6> html_entity_decode() ? ? ? ?把 HTML 实体转换为字符

?7> htmlentities() ? ? ? ? ? ? ?把字符转换为 HTML 实体

?

?

2: 文件http下载方式:

header( "Content-type: application" );

header( "Content-Disposition: attachment; filename=$filename" );

header( "Content-Description: PHP Generated Data\n\n\n" );

echo $str_contents;

?

?

3: file函数

file_get_contents();

将整个文件读入一个字符串?

? 语法:file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] )

和 file() 一样,只除了 file_get_contents() 把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。

如果失败,file_get_contents() 将返回 FALSE。?

file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。?

注意:?

如果要打开有特殊字符的 URL (比如说有空格),就需要使用 urlencode() 进行 URL 编码。?

注意:?

context 参数可以用 NULL 来忽略。

?

?

4: 转向:

header("location:index.php")

?

5: JavaScript的URL编码方法比较:escape、encodeURI和encodeURIComponent

javascript中存在几种对URL字符串进行编码的方法:escape(),encodeURI(),以及encodeURIComponent()。这几种编码所起的作用各不相同。

escape()方法:

采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。 不会被此方法编码的字符: @ * / +

encodeURI()方法:

把URI字符串采用UTF-8编码格式转化成escape格式的字符串。 不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + ‘

encodeURIComponent()方法:

把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。不会被此方法编码的字符:! * ( ) ‘

因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用 escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者 encodeURIComponent。

另外,encodeURI/encodeURIComponent是在javascript1.5之后引进的,escape则在javascript1.0版本就有。

?

?

if( function_exists('mb_detect_encoding') ){

$file_encoding = ?mb_detect_encoding($tdv,array("GB2312","GBK","UTF-8"));

if( strtoupper($file_encoding) !=='GB2312' ){

$tdv = iconv("UTF-8","GB2312//IGNORE",$tdv);

}

}

?

?

?

p

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn