string

string

PHP stripcslashes 函数

PHPllslx520 发表了文章 • 0 个评论 • 51 次浏览 • 2016-11-11 22:16 • 来自相关话题

一、函数功能:
  将反斜杠"\"开头的"\n"、"\r"…、八进制、十六进制,转换为对应的字符。它是addcslashes()函数的反向操作函数。
 
二、函数语法:string stripcslashes($str)
三、函数参数:参数描述$str需要反转义的字符串。
四、返回值:返回转义后的字符串。
五、用法举例:
1、单个字符:<?php
# 爱E族:aiezu.com
$str = "\\x41"; #ASCII编码表中A的十六进制表示41
echo sprintf("%s 经函数stripcslashes处理后为:%s;\n\n", $str, stripcslashes($str));

$str = "\\102"; #ASCII编码表中A的八进制表示102
echo sprintf("%s 经函数stripcslashes处理后为:%s;\n\n", $str, stripcslashes($str));

$str = "\\n"; #ASCII编码表中换行符
echo sprintf("%s 经函数stripcslashes处理后为(实现换行):%s;\n\n", $str, stripcslashes($str));输出:\x41 经函数stripcslashes处理后为:A;

\102 经函数stripcslashes处理后为:B;

\n 经函数stripcslashes处理后为(实现换行):

2、多个字符:<?php
echo stripcslashes("\x61\x69\x65\x7a\x75\x2e\x63\x6f\x6d");
echo "\n";
echo stripcslashes("\xe5\xa5\xbd\xe5\xa5\xbd\xe5\xad\xa6\xe4\xb9\xa0");运行结果:aiezu.com
好好学习
3、stripcslashes与stripslashes的区别:
  stripcslashes()会将"\"开头的八进制、十六进制转换为对应的ASCII字符,而stripslashes()是简单的移除反斜杠:<?php
#爱E族 aiezu.com
$str = "\\x41";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));

$str = "\\102";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));运行结果:\x41 stripslashes:x41 stripcslashes:A
\102 stripslashes:102 stripcslashes:B 查看全部
一、函数功能:
  将反斜杠"\"开头的"\n"、"\r"…、八进制、十六进制,转换为对应的字符。它是addcslashes()函数的反向操作函数。
 
二、函数语法:
string stripcslashes($str)

三、函数参数:
参数描述
$str需要反转义的字符串。

四、返回值:
返回转义后的字符串。

五、用法举例:
1、单个字符:
<?php
# 爱E族:aiezu.com
$str = "\\x41"; #ASCII编码表中A的十六进制表示41
echo sprintf("%s 经函数stripcslashes处理后为:%s;\n\n", $str, stripcslashes($str));

$str = "\\102"; #ASCII编码表中A的八进制表示102
echo sprintf("%s 经函数stripcslashes处理后为:%s;\n\n", $str, stripcslashes($str));

$str = "\\n"; #ASCII编码表中换行符
echo sprintf("%s 经函数stripcslashes处理后为(实现换行):%s;\n\n", $str, stripcslashes($str));
输出:
\x41 经函数stripcslashes处理后为:A;

\102 经函数stripcslashes处理后为:B;

\n 经函数stripcslashes处理后为(实现换行):
;
 
2、多个字符:
<?php
echo stripcslashes("\x61\x69\x65\x7a\x75\x2e\x63\x6f\x6d");
echo "\n";
echo stripcslashes("\xe5\xa5\xbd\xe5\xa5\xbd\xe5\xad\xa6\xe4\xb9\xa0");
运行结果:
aiezu.com
好好学习

3、stripcslashes与stripslashes的区别:
  stripcslashes()会将"\"开头的八进制、十六进制转换为对应的ASCII字符,而stripslashes()是简单的移除反斜杠:
<?php
#爱E族 aiezu.com
$str = "\\x41";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));

$str = "\\102";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));
运行结果:
\x41 stripslashes:x41 stripcslashes:A
\102 stripslashes:102 stripcslashes:B

PHP stripslashes 函数

PHPllslx520 发表了文章 • 0 个评论 • 54 次浏览 • 2016-11-11 21:52 • 来自相关话题

一、函数功能:
  addslashes的反向操作,移除addslashes()函数添加的转义反斜杠字符。

二、函数语法:string stripslashes($str)
三、函数参数:参数描述$str要移除转义反斜杠的字符串。
四、返回值:返回移除转义反斜杠后的字符串
五、用法举例:
1、基本用法:<?php
$str = "it\'s";
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

$str = '欢迎来到\"爱E族:aiezu.com\"';
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

$str = 'abc\\ndef';
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));输出:it\'s >转换为-> it's
欢迎来到\"爱E族:aiezu.com\" >转换为-> 欢迎来到"爱E族:aiezu.com"
abc\ndef >转换为-> abcndef
 
2、移除规则:<?php
#一个斜杠时移除斜杠
$str = "it\\'s"; #每两个斜杠转为一个斜杠,变量$str值只包含一个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续两个斜杠时移除一个斜杠
$str = "\\\\"; #此处变量$str值实际为两个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续三个斜杠时移除两个斜杠
$str = "\\\\\\"; #此处变量$str值实际为三个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续四个斜杠时移除个斜杠
$str = "\\\\\\\\"; #此处变量$str值实际为四个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));输出:it\'s >转换为-> it's
\\ >转换为-> \
\\\ >转换为-> \
\\\\ >转换为-> \\ 
3、移除多维数组值的反斜杠:<?php
function array_stripslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_stripslashes($value);
}
return $array;
}else{
return stripslashes($array);
}
}
$arr = array(
'aa'=>"爱E族"
,'ab'=>array(
'ba'=>"\'aiezu.com\'"
,'bb'=>"Is\'t a book?"
)
);
$arr = array_stripslashes($arr);
print_r($arr);输出:Array
(
[aa] => 爱E族
[ab] => Array
(
[ba] => 'aiezu.com'
[bb] => Is't a book?
)
)
4、stripslashes与stripcslashes的区别:
  stripslashes()是简单的移除反斜杠,而stripcslashes()会将"\"开头的八进制、十六进制转换为对应的ASCII字符:<?php
#爱E族: aiezu.com
$str = "\\x41";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));

$str = "\\102";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));输出:\x41 stripslashes:x41 stripcslashes:A
\102 stripslashes:102 stripcslashes:B  查看全部
一、函数功能:
  addslashes的反向操作,移除addslashes()函数添加的转义反斜杠字符。

二、函数语法:
string stripslashes($str)

三、函数参数:
参数描述
$str要移除转义反斜杠的字符串。

四、返回值:
返回移除转义反斜杠后的字符串

五、用法举例:
1、基本用法:
<?php
$str = "it\'s";
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

$str = '欢迎来到\"爱E族:aiezu.com\"';
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

$str = 'abc\\ndef';
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));
输出:
it\'s >转换为-> it's
欢迎来到\"爱E族:aiezu.com\" >转换为-> 欢迎来到"爱E族:aiezu.com"
abc\ndef >转换为-> abcndef

 
2、移除规则:
<?php
#一个斜杠时移除斜杠
$str = "it\\'s"; #每两个斜杠转为一个斜杠,变量$str值只包含一个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续两个斜杠时移除一个斜杠
$str = "\\\\"; #此处变量$str值实际为两个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续三个斜杠时移除两个斜杠
$str = "\\\\\\"; #此处变量$str值实际为三个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续四个斜杠时移除个斜杠
$str = "\\\\\\\\"; #此处变量$str值实际为四个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));
输出:
it\'s >转换为-> it's
\\ >转换为-> \
\\\ >转换为-> \
\\\\ >转换为-> \\
 
3、移除多维数组值的反斜杠:
<?php
function array_stripslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_stripslashes($value);
}
return $array;
}else{
return stripslashes($array);
}
}
$arr = array(
'aa'=>"爱E族"
,'ab'=>array(
'ba'=>"\'aiezu.com\'"
,'bb'=>"Is\'t a book?"
)
);
$arr = array_stripslashes($arr);
print_r($arr);
输出:
Array
(
[aa] => 爱E族
[ab] => Array
(
[ba] => 'aiezu.com'
[bb] => Is't a book?
)
)

4、stripslashes与stripcslashes的区别:
  stripslashes()是简单的移除反斜杠,而stripcslashes()会将"\"开头的八进制、十六进制转换为对应的ASCII字符:
<?php
#爱E族: aiezu.com
$str = "\\x41";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));

$str = "\\102";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));
输出:
\x41 stripslashes:x41 stripcslashes:A
\102 stripslashes:102 stripcslashes:B
 

PHP addcslashes 函数

PHPllslx520 发表了文章 • 0 个评论 • 39 次浏览 • 2016-11-11 21:23 • 来自相关话题

一、函数功能:
  以 C 语言风格为字符串中的“指定字符”添加反斜杠。它是stripcslashes()函数的反向操作函数,同时它也是stripcslashes()函数的升级版。

二、函数语法:string addcslashes($str, $charlist)
三、函数参数:参数描述$str要添加反斜杠的原始字符串$charlist指定要添加反斜杠的字符合集
1、指定多个字符:“abc”,“123”,“、“abc123\t\n”;
2、使用斜杠开头的八进制:“\020\018”,“\096”(对于不可见字符非常有用);
3、指定一个范围:“\141..\177”,“a..z”,“0..9”。
四、返回值:返回添加反斜杠完成的字符串。
五、用法举例:
1、为换行符和制表符添加反斜杠:
  换行符和制表符经过下面addcslashes函数处理后,不再有换行,而是用加了斜杠的转义符形式表示(\011为制表符\b的ASCII八进制编码):<?php
# 爱E族:aiezu.com
$str1 = "ab
cd ef";
echo addcslashes($str1, "\n\011");输出:ab\ncd\tef 
2、通过ASCII编码表范围,指定要添加反斜杠的字符:
  此例中除数字123外,其他字符都被添加反斜杠,因为其他字符都在ASCII编码表的“A..z”范围内:<?php
# 爱E族:aiezu.com
echo addcslashes("ABC123[_]abc", "A..z");
echo addcslashes("ABC123[_]abc", "\101..\172");输出:\A\B\C123\[\_\]\a\b\c
\A\B\C123\[\_\]\a\b\c 
3、无效的ASCII编码表范围:
  由于只有递增才是有效的ASCII编码表范围,所以下例中的"z..A"不是有效的ASCII编码表范围,抛出一条警告信息,且只有"zA."三个字符被添加反斜杠。<?php
# 爱E族:aiezu.com
echo addcslashes("ABCz.123[_]abc", "z..A");输出:PHP Warning: addcslashes(): Invalid '..'-range, '..'-range needs to be incrementing in /tmp/a.php on line 2
\ABC\z\.123[_]abc 查看全部
一、函数功能:
  以 C 语言风格为字符串中的“指定字符”添加反斜杠。它是stripcslashes()函数的反向操作函数,同时它也是stripcslashes()函数的升级版。

二、函数语法:
string addcslashes($str, $charlist)

三、函数参数:
参数描述
$str要添加反斜杠的原始字符串
$charlist指定要添加反斜杠的字符合集
1、指定多个字符:“abc”,“123”,“、“abc123\t\n”;
2、使用斜杠开头的八进制:“\020\018”,“\096”(对于不可见字符非常有用);
3、指定一个范围:“\141..\177”,“a..z”,“0..9”。

四、返回值:
返回添加反斜杠完成的字符串。

五、用法举例:
1、为换行符和制表符添加反斜杠:
  换行符和制表符经过下面addcslashes函数处理后,不再有换行,而是用加了斜杠的转义符形式表示(\011为制表符\b的ASCII八进制编码):
<?php
# 爱E族:aiezu.com
$str1 = "ab
cd ef";
echo addcslashes($str1, "\n\011");
输出:
ab\ncd\tef
 
2、通过ASCII编码表范围,指定要添加反斜杠的字符:
  此例中除数字123外,其他字符都被添加反斜杠,因为其他字符都在ASCII编码表的“A..z”范围内:
<?php
# 爱E族:aiezu.com
echo addcslashes("ABC123[_]abc", "A..z");
echo addcslashes("ABC123[_]abc", "\101..\172");
输出:
\A\B\C123\[\_\]\a\b\c
\A\B\C123\[\_\]\a\b\c
 
3、无效的ASCII编码表范围:
  由于只有递增才是有效的ASCII编码表范围,所以下例中的"z..A"不是有效的ASCII编码表范围,抛出一条警告信息,且只有"zA."三个字符被添加反斜杠。
<?php
# 爱E族:aiezu.com
echo addcslashes("ABCz.123[_]abc", "z..A");
输出:
PHP Warning:  addcslashes(): Invalid '..'-range, '..'-range needs to be incrementing in /tmp/a.php on line 2
\ABC\z\.123[_]abc

PHP addslashes 函数

PHPllslx520 发表了文章 • 0 个评论 • 48 次浏览 • 2016-11-11 21:04 • 来自相关话题

一、函数功能:
  数据库查询语句的要求,在单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符) 等特殊字符前添加反斜杠。它是stripslashes()函数的反向操作函数。

二、函数语法:string addslashes($str)
三、函数参数:参数描述$str要为特殊字符添加反斜杠的元素字符串。
四、返回值:返回添加反斜杠完成的字符串。
五、用法举例:
1、基本用法:<?php
# 爱E族:aiezu.com
echo addslashes("it's\n");
echo addslashes('abc"def\123');输出:it\'s
abc\"def\\123 
2、给Sql查询参数添加反斜杠:<?php
# 爱E族:aiezu.com
#未使用addslashes函数添加反斜杠的SQL语句
$title = "it's";
$sql = "select * from Table where title='{$title}'";
echo '$sql值为: ' . $sql;
echo "\n\n";

#使用addslashes函数添加反斜杠的SQL语句:
$title = addslashes("it's");
$sql = "select * from Table where title='{$title}'";
echo '$sql值为: ' . $sql;输出:$sql值为: select * from Table where title='it's'

$sql值为: select * from Table where title='it\'s'注:上面一条SQL语句由于"it's"的单引号导致SQL中的title查询值闭合单引号提前闭合,而导致如下错误:
PHP Fatal error:  Uncaught exception 'Exception' with message 'MySQL Query Error : You have an error in your SQL syntax; check the manual that corresponds to your Mysql server version for the right syntax to use near 's'' at line 1<br /> SQL:select * from Table where title='it's'' in /tmp/mysql.php:148
 
3、对数组元素使用addslashes:<?php
# 爱E族:aiezu.com
function array_addslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_addslashes($value);
}
return $array;
}else{
return addslashes($array);
}
}
$arr = array(
'aa'=>"O'Reilly"
,'ab'=>array(
'ba'=>"It's"
,'bb'=>"Is't a book?"
)
);
$arr = array_addslashes($arr);
print_r($arr);输出:Array
(
[aa] => O\'Reilly
[ab] => Array
(
[ba] => It\'s
[bb] => Is\'t a book?
)

4、对浏览器发送到http服务器的数据进行addslashes转义:
  当php.ini配置文件中magic_quotes_gpc配置项值为On时,浏览器发送到服务器的数据($_POST, $_GET, $_COOKUE)会自动进行addslashes转义,无需再次进行addslashes转义(PHP 5.4 之前 magic_quotes_gpc 默认是 On)。我们可以通过get_magic_quotes_gpc函数检测magic_quotes_gpc配置项值是否为On:<?php
# 爱E族:aiezu.com
function array_addslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_addslashes($value);
}
return $array;
}else{
return addslashes($array);
}
}
if ( ! get_magic_quotes_gpc() ) {
$_POST = array_addslashes($_POST);
$_GET = array_addslashes($_GET);
$_COOKIE= array_addslashes($_COOKIE);
} 查看全部
一、函数功能:
  数据库查询语句的要求,在单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符) 等特殊字符前添加反斜杠。它是stripslashes()函数的反向操作函数。

二、函数语法:
string addslashes($str)

三、函数参数:
参数描述
$str要为特殊字符添加反斜杠的元素字符串。

四、返回值:
返回添加反斜杠完成的字符串。

五、用法举例:
1、基本用法:
<?php
# 爱E族:aiezu.com
echo addslashes("it's\n");
echo addslashes('abc"def\123');
输出:
it\'s
abc\"def\\123
 
2、给Sql查询参数添加反斜杠:
<?php
# 爱E族:aiezu.com
#未使用addslashes函数添加反斜杠的SQL语句
$title = "it's";
$sql = "select * from Table where title='{$title}'";
echo '$sql值为: ' . $sql;
echo "\n\n";

#使用addslashes函数添加反斜杠的SQL语句:
$title = addslashes("it's");
$sql = "select * from Table where title='{$title}'";
echo '$sql值为: ' . $sql;
输出:
$sql值为: select * from Table where title='it's'

$sql值为: select * from Table where title='it\'s'
注:上面一条SQL语句由于"it's"的单引号导致SQL中的title查询值闭合单引号提前闭合,而导致如下错误:
PHP Fatal error:  Uncaught exception 'Exception' with message 'MySQL Query Error : You have an error in your SQL syntax; check the manual that corresponds to your Mysql server version for the right syntax to use near 's'' at line 1<br /> SQL:select * from Table where title='it's'' in /tmp/mysql.php:148
 
3、对数组元素使用addslashes:
<?php
# 爱E族:aiezu.com
function array_addslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_addslashes($value);
}
return $array;
}else{
return addslashes($array);
}
}
$arr = array(
'aa'=>"O'Reilly"
,'ab'=>array(
'ba'=>"It's"
,'bb'=>"Is't a book?"
)
);
$arr = array_addslashes($arr);
print_r($arr);
输出:
Array
(
[aa] => O\'Reilly
[ab] => Array
(
[ba] => It\'s
[bb] => Is\'t a book?
)
)
 
4、对浏览器发送到http服务器的数据进行addslashes转义:
  当php.ini配置文件中magic_quotes_gpc配置项值为On时,浏览器发送到服务器的数据($_POST, $_GET, $_COOKUE)会自动进行addslashes转义,无需再次进行addslashes转义(PHP 5.4 之前 magic_quotes_gpc 默认是 On)。我们可以通过get_magic_quotes_gpc函数检测magic_quotes_gpc配置项值是否为On:
<?php
# 爱E族:aiezu.com
function array_addslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_addslashes($value);
}
return $array;
}else{
return addslashes($array);
}
}
if ( ! get_magic_quotes_gpc() ) {
$_POST = array_addslashes($_POST);
$_GET = array_addslashes($_GET);
$_COOKIE= array_addslashes($_COOKIE);
}

PHP chunk_split 函数详解

PHPllslx520 发表了文章 • 0 个评论 • 36 次浏览 • 2016-11-11 17:35 • 来自相关话题

一、函数功能:
  将字符串按指定长度、使用指定字符分隔开来。
 
二、函数语法: string chunk_split($str [, $blocksize = 76 [, $endadd = "\r\n" ]])
三、函数参数:参数描述$str切割前的原始字符串$blocksize可选,切割后的块长度,默认76$endadd可选,在切割后的每块后面追加的字符串,默认回车换行符(\r\n)
四、返回值:返回已分割的字符串。
五、用法举例:
1、将a-z 26个字母每7个字符使用一换行符(默认)分隔:<?php
//爱E族:aiezu.com
echo chunk_split("abcdefghijklmnopqrstuvwxyz", 7);输出:abcdefg
hijklmn
opqrstu
vwxyz 
2、将0-9十个字符,按2个字符、使用逗号(,)分隔:<?php
//爱E族:aiezu.com
echo chunk_split("0123456789", 2, ",");输出:01,23,45,67,89,
3、为汉字实现chunk_split功能:
  由于chunk_split()函数只支持单字节字符的字符串,下面我们自定义一个能支持多字节字符(如汉字)、类似chunk_split()函数功能的函数。<?php
//爱E族:aiezu.com
function utf8_chunk_split($str, $blocksize=76, $endadd="\r\n") {
$i = 0;
$blocks = array();
while( $i < mb_strlen($str, 'utf8') ) {
$blocks[] = mb_substr($str, $i, $blocksize, 'utf8') . $endadd;
$i+= $blocksize;
}
return join("", $blocks);
}
echo chunk_split('好好学习abcd1234天天向上', 4, ";");
echo PHP_EOL;
echo utf8_chunk_split('好好学习abcd1234天天向上', 4, ";");输出:好㻥½嫻¦习;abcd;1234;天㻤©去上;

好好学习;abcd;1234;天天向上; 查看全部
一、函数功能:
  将字符串按指定长度、使用指定字符分隔开来。
 
二、函数语法: 
string chunk_split($str [, $blocksize = 76 [, $endadd = "\r\n" ]])

三、函数参数:
参数描述
$str切割前的原始字符串
$blocksize可选,切割后的块长度,默认76
$endadd可选,在切割后的每块后面追加的字符串,默认回车换行符(\r\n)

四、返回值:
返回已分割的字符串。

五、用法举例:
1、将a-z 26个字母每7个字符使用一换行符(默认)分隔:
<?php
//爱E族:aiezu.com
echo chunk_split("abcdefghijklmnopqrstuvwxyz", 7);
输出:
abcdefg
hijklmn
opqrstu
vwxyz
 
2、将0-9十个字符,按2个字符、使用逗号(,)分隔:
<?php
//爱E族:aiezu.com
echo chunk_split("0123456789", 2, ",");
输出:
01,23,45,67,89,

3、为汉字实现chunk_split功能:
  由于chunk_split()函数只支持单字节字符的字符串,下面我们自定义一个能支持多字节字符(如汉字)、类似chunk_split()函数功能的函数。
<?php
//爱E族:aiezu.com
function utf8_chunk_split($str, $blocksize=76, $endadd="\r\n") {
$i = 0;
$blocks = array();
while( $i < mb_strlen($str, 'utf8') ) {
$blocks[] = mb_substr($str, $i, $blocksize, 'utf8') . $endadd;
$i+= $blocksize;
}
return join("", $blocks);
}
echo chunk_split('好好学习abcd1234天天向上', 4, ";");
echo PHP_EOL;
echo utf8_chunk_split('好好学习abcd1234天天向上', 4, ";");
输出:
好㻥½嫻¦习;abcd;1234;天㻤©去上;

好好学习;abcd;1234;天天向上;

PHP substr 函数详解

PHPllslx520 发表了文章 • 0 个评论 • 45 次浏览 • 2016-11-09 12:24 • 来自相关话题

一、函数功能:
  从字符串中指定位置开始、截取一个指定长度的子字符串。注:此函数只适合用于单字节字符串截取,如含多字节字符(如:汉字),请使用mb_substr()函数。
 
二、函数语法:string substr($string, $start [, $length ]) 
三、参数介绍:参数描述$string原始字符串;$start截取的开始位置。
  非负数:从字符串的指定位置开始截取;
  负数:从字符串结尾的指定位置开始;$length可选参数,截取长度,默认截取到字符串结尾。
  非负数:从$start位置截取指定长度;
  负数:从$start位置截取到字符串结尾指定位置。 
四、返回值:成功时返回:截取的子字符串; 失败时返回:false。
 
五、用法举例:
1、基本用法:<?php
//爱E族: aiezu.com
$str = '0123456789';
echo sprintf("从第5个后起截取到最后:%s\n", substr($str, 5));
echo sprintf("从第5个后起截取3个字符:%s\n", substr($str, 5, 2));
echo sprintf("从第5个后起截取到倒数第一个:%s\n", substr($str, 5, -1));
echo sprintf("从倒数第4个起截取到最后:%s\n", substr($str, -4));
echo sprintf("从倒数第4个起截取2个字符:%s\n", substr($str, -4, 2));
echo sprintf("从倒数第4个起截取到倒数第1个:%s\n", substr($str, -4, -1));输出结果:从第5个后起截取到最后:56789
从第5个后起截取3个字符:56
从第5个后起截取到倒数第一个:5678
从倒数第4个起截取到最后:6789
从倒数第4个起截取2个字符:67
从倒数第4个起截取到倒数第1个:678 查看全部
一、函数功能:
  从字符串中指定位置开始、截取一个指定长度的子字符串。注:此函数只适合用于单字节字符串截取,如含多字节字符(如:汉字),请使用mb_substr()函数。
 
二、函数语法:
string substr($string, $start [, $length ])
 
三、参数介绍:
参数描述
$string原始字符串;
$start截取的开始位置。
  非负数:从字符串的指定位置开始截取;
  负数:从字符串结尾的指定位置开始;
$length可选参数,截取长度,默认截取到字符串结尾。
  非负数:从$start位置截取指定长度;
  负数:从$start位置截取到字符串结尾指定位置。
 
四、返回值:
  • 成功时返回:截取的子字符串; 
  • 失败时返回:false。

 
五、用法举例:
1、基本用法:
<?php
//爱E族: aiezu.com
$str = '0123456789';
echo sprintf("从第5个后起截取到最后:%s\n", substr($str, 5));
echo sprintf("从第5个后起截取3个字符:%s\n", substr($str, 5, 2));
echo sprintf("从第5个后起截取到倒数第一个:%s\n", substr($str, 5, -1));
echo sprintf("从倒数第4个起截取到最后:%s\n", substr($str, -4));
echo sprintf("从倒数第4个起截取2个字符:%s\n", substr($str, -4, 2));
echo sprintf("从倒数第4个起截取到倒数第1个:%s\n", substr($str, -4, -1));
输出结果:
从第5个后起截取到最后:56789
从第5个后起截取3个字符:56
从第5个后起截取到倒数第一个:5678
从倒数第4个起截取到最后:6789
从倒数第4个起截取2个字符:67
从倒数第4个起截取到倒数第1个:678

PHP将逗号分隔的字符串转换成一个数组

回复

PHP匿名用户 回复了问题 • 1 人关注 • 1 个回复 • 64 次浏览 • 2016-10-28 14:22 • 来自相关话题

PHP将数字转换为字符串,最小三位长度,不足的前面补零

回复

PHPliuliangsong 回复了问题 • 1 人关注 • 1 个回复 • 59 次浏览 • 2016-10-28 13:51 • 来自相关话题

PHP stripcslashes 函数

PHPllslx520 发表了文章 • 0 个评论 • 51 次浏览 • 2016-11-11 22:16 • 来自相关话题

一、函数功能:
  将反斜杠"\"开头的"\n"、"\r"…、八进制、十六进制,转换为对应的字符。它是addcslashes()函数的反向操作函数。
 
二、函数语法:string stripcslashes($str)
三、函数参数:参数描述$str需要反转义的字符串。
四、返回值:返回转义后的字符串。
五、用法举例:
1、单个字符:<?php
# 爱E族:aiezu.com
$str = "\\x41"; #ASCII编码表中A的十六进制表示41
echo sprintf("%s 经函数stripcslashes处理后为:%s;\n\n", $str, stripcslashes($str));

$str = "\\102"; #ASCII编码表中A的八进制表示102
echo sprintf("%s 经函数stripcslashes处理后为:%s;\n\n", $str, stripcslashes($str));

$str = "\\n"; #ASCII编码表中换行符
echo sprintf("%s 经函数stripcslashes处理后为(实现换行):%s;\n\n", $str, stripcslashes($str));输出:\x41 经函数stripcslashes处理后为:A;

\102 经函数stripcslashes处理后为:B;

\n 经函数stripcslashes处理后为(实现换行):

2、多个字符:<?php
echo stripcslashes("\x61\x69\x65\x7a\x75\x2e\x63\x6f\x6d");
echo "\n";
echo stripcslashes("\xe5\xa5\xbd\xe5\xa5\xbd\xe5\xad\xa6\xe4\xb9\xa0");运行结果:aiezu.com
好好学习
3、stripcslashes与stripslashes的区别:
  stripcslashes()会将"\"开头的八进制、十六进制转换为对应的ASCII字符,而stripslashes()是简单的移除反斜杠:<?php
#爱E族 aiezu.com
$str = "\\x41";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));

$str = "\\102";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));运行结果:\x41 stripslashes:x41 stripcslashes:A
\102 stripslashes:102 stripcslashes:B 查看全部
一、函数功能:
  将反斜杠"\"开头的"\n"、"\r"…、八进制、十六进制,转换为对应的字符。它是addcslashes()函数的反向操作函数。
 
二、函数语法:
string stripcslashes($str)

三、函数参数:
参数描述
$str需要反转义的字符串。

四、返回值:
返回转义后的字符串。

五、用法举例:
1、单个字符:
<?php
# 爱E族:aiezu.com
$str = "\\x41"; #ASCII编码表中A的十六进制表示41
echo sprintf("%s 经函数stripcslashes处理后为:%s;\n\n", $str, stripcslashes($str));

$str = "\\102"; #ASCII编码表中A的八进制表示102
echo sprintf("%s 经函数stripcslashes处理后为:%s;\n\n", $str, stripcslashes($str));

$str = "\\n"; #ASCII编码表中换行符
echo sprintf("%s 经函数stripcslashes处理后为(实现换行):%s;\n\n", $str, stripcslashes($str));
输出:
\x41 经函数stripcslashes处理后为:A;

\102 经函数stripcslashes处理后为:B;

\n 经函数stripcslashes处理后为(实现换行):
;
 
2、多个字符:
<?php
echo stripcslashes("\x61\x69\x65\x7a\x75\x2e\x63\x6f\x6d");
echo "\n";
echo stripcslashes("\xe5\xa5\xbd\xe5\xa5\xbd\xe5\xad\xa6\xe4\xb9\xa0");
运行结果:
aiezu.com
好好学习

3、stripcslashes与stripslashes的区别:
  stripcslashes()会将"\"开头的八进制、十六进制转换为对应的ASCII字符,而stripslashes()是简单的移除反斜杠:
<?php
#爱E族 aiezu.com
$str = "\\x41";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));

$str = "\\102";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));
运行结果:
\x41 stripslashes:x41 stripcslashes:A
\102 stripslashes:102 stripcslashes:B

PHP stripslashes 函数

PHPllslx520 发表了文章 • 0 个评论 • 54 次浏览 • 2016-11-11 21:52 • 来自相关话题

一、函数功能:
  addslashes的反向操作,移除addslashes()函数添加的转义反斜杠字符。

二、函数语法:string stripslashes($str)
三、函数参数:参数描述$str要移除转义反斜杠的字符串。
四、返回值:返回移除转义反斜杠后的字符串
五、用法举例:
1、基本用法:<?php
$str = "it\'s";
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

$str = '欢迎来到\"爱E族:aiezu.com\"';
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

$str = 'abc\\ndef';
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));输出:it\'s >转换为-> it's
欢迎来到\"爱E族:aiezu.com\" >转换为-> 欢迎来到"爱E族:aiezu.com"
abc\ndef >转换为-> abcndef
 
2、移除规则:<?php
#一个斜杠时移除斜杠
$str = "it\\'s"; #每两个斜杠转为一个斜杠,变量$str值只包含一个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续两个斜杠时移除一个斜杠
$str = "\\\\"; #此处变量$str值实际为两个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续三个斜杠时移除两个斜杠
$str = "\\\\\\"; #此处变量$str值实际为三个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续四个斜杠时移除个斜杠
$str = "\\\\\\\\"; #此处变量$str值实际为四个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));输出:it\'s >转换为-> it's
\\ >转换为-> \
\\\ >转换为-> \
\\\\ >转换为-> \\ 
3、移除多维数组值的反斜杠:<?php
function array_stripslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_stripslashes($value);
}
return $array;
}else{
return stripslashes($array);
}
}
$arr = array(
'aa'=>"爱E族"
,'ab'=>array(
'ba'=>"\'aiezu.com\'"
,'bb'=>"Is\'t a book?"
)
);
$arr = array_stripslashes($arr);
print_r($arr);输出:Array
(
[aa] => 爱E族
[ab] => Array
(
[ba] => 'aiezu.com'
[bb] => Is't a book?
)
)
4、stripslashes与stripcslashes的区别:
  stripslashes()是简单的移除反斜杠,而stripcslashes()会将"\"开头的八进制、十六进制转换为对应的ASCII字符:<?php
#爱E族: aiezu.com
$str = "\\x41";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));

$str = "\\102";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));输出:\x41 stripslashes:x41 stripcslashes:A
\102 stripslashes:102 stripcslashes:B  查看全部
一、函数功能:
  addslashes的反向操作,移除addslashes()函数添加的转义反斜杠字符。

二、函数语法:
string stripslashes($str)

三、函数参数:
参数描述
$str要移除转义反斜杠的字符串。

四、返回值:
返回移除转义反斜杠后的字符串

五、用法举例:
1、基本用法:
<?php
$str = "it\'s";
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

$str = '欢迎来到\"爱E族:aiezu.com\"';
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

$str = 'abc\\ndef';
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));
输出:
it\'s >转换为-> it's
欢迎来到\"爱E族:aiezu.com\" >转换为-> 欢迎来到"爱E族:aiezu.com"
abc\ndef >转换为-> abcndef

 
2、移除规则:
<?php
#一个斜杠时移除斜杠
$str = "it\\'s"; #每两个斜杠转为一个斜杠,变量$str值只包含一个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续两个斜杠时移除一个斜杠
$str = "\\\\"; #此处变量$str值实际为两个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续三个斜杠时移除两个斜杠
$str = "\\\\\\"; #此处变量$str值实际为三个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续四个斜杠时移除个斜杠
$str = "\\\\\\\\"; #此处变量$str值实际为四个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));
输出:
it\'s >转换为-> it's
\\ >转换为-> \
\\\ >转换为-> \
\\\\ >转换为-> \\
 
3、移除多维数组值的反斜杠:
<?php
function array_stripslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_stripslashes($value);
}
return $array;
}else{
return stripslashes($array);
}
}
$arr = array(
'aa'=>"爱E族"
,'ab'=>array(
'ba'=>"\'aiezu.com\'"
,'bb'=>"Is\'t a book?"
)
);
$arr = array_stripslashes($arr);
print_r($arr);
输出:
Array
(
[aa] => 爱E族
[ab] => Array
(
[ba] => 'aiezu.com'
[bb] => Is't a book?
)
)

4、stripslashes与stripcslashes的区别:
  stripslashes()是简单的移除反斜杠,而stripcslashes()会将"\"开头的八进制、十六进制转换为对应的ASCII字符:
<?php
#爱E族: aiezu.com
$str = "\\x41";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));

$str = "\\102";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));
输出:
\x41 stripslashes:x41 stripcslashes:A
\102 stripslashes:102 stripcslashes:B
 

PHP addcslashes 函数

PHPllslx520 发表了文章 • 0 个评论 • 39 次浏览 • 2016-11-11 21:23 • 来自相关话题

一、函数功能:
  以 C 语言风格为字符串中的“指定字符”添加反斜杠。它是stripcslashes()函数的反向操作函数,同时它也是stripcslashes()函数的升级版。

二、函数语法:string addcslashes($str, $charlist)
三、函数参数:参数描述$str要添加反斜杠的原始字符串$charlist指定要添加反斜杠的字符合集
1、指定多个字符:“abc”,“123”,“、“abc123\t\n”;
2、使用斜杠开头的八进制:“\020\018”,“\096”(对于不可见字符非常有用);
3、指定一个范围:“\141..\177”,“a..z”,“0..9”。
四、返回值:返回添加反斜杠完成的字符串。
五、用法举例:
1、为换行符和制表符添加反斜杠:
  换行符和制表符经过下面addcslashes函数处理后,不再有换行,而是用加了斜杠的转义符形式表示(\011为制表符\b的ASCII八进制编码):<?php
# 爱E族:aiezu.com
$str1 = "ab
cd ef";
echo addcslashes($str1, "\n\011");输出:ab\ncd\tef 
2、通过ASCII编码表范围,指定要添加反斜杠的字符:
  此例中除数字123外,其他字符都被添加反斜杠,因为其他字符都在ASCII编码表的“A..z”范围内:<?php
# 爱E族:aiezu.com
echo addcslashes("ABC123[_]abc", "A..z");
echo addcslashes("ABC123[_]abc", "\101..\172");输出:\A\B\C123\[\_\]\a\b\c
\A\B\C123\[\_\]\a\b\c 
3、无效的ASCII编码表范围:
  由于只有递增才是有效的ASCII编码表范围,所以下例中的"z..A"不是有效的ASCII编码表范围,抛出一条警告信息,且只有"zA."三个字符被添加反斜杠。<?php
# 爱E族:aiezu.com
echo addcslashes("ABCz.123[_]abc", "z..A");输出:PHP Warning: addcslashes(): Invalid '..'-range, '..'-range needs to be incrementing in /tmp/a.php on line 2
\ABC\z\.123[_]abc 查看全部
一、函数功能:
  以 C 语言风格为字符串中的“指定字符”添加反斜杠。它是stripcslashes()函数的反向操作函数,同时它也是stripcslashes()函数的升级版。

二、函数语法:
string addcslashes($str, $charlist)

三、函数参数:
参数描述
$str要添加反斜杠的原始字符串
$charlist指定要添加反斜杠的字符合集
1、指定多个字符:“abc”,“123”,“、“abc123\t\n”;
2、使用斜杠开头的八进制:“\020\018”,“\096”(对于不可见字符非常有用);
3、指定一个范围:“\141..\177”,“a..z”,“0..9”。

四、返回值:
返回添加反斜杠完成的字符串。

五、用法举例:
1、为换行符和制表符添加反斜杠:
  换行符和制表符经过下面addcslashes函数处理后,不再有换行,而是用加了斜杠的转义符形式表示(\011为制表符\b的ASCII八进制编码):
<?php
# 爱E族:aiezu.com
$str1 = "ab
cd ef";
echo addcslashes($str1, "\n\011");
输出:
ab\ncd\tef
 
2、通过ASCII编码表范围,指定要添加反斜杠的字符:
  此例中除数字123外,其他字符都被添加反斜杠,因为其他字符都在ASCII编码表的“A..z”范围内:
<?php
# 爱E族:aiezu.com
echo addcslashes("ABC123[_]abc", "A..z");
echo addcslashes("ABC123[_]abc", "\101..\172");
输出:
\A\B\C123\[\_\]\a\b\c
\A\B\C123\[\_\]\a\b\c
 
3、无效的ASCII编码表范围:
  由于只有递增才是有效的ASCII编码表范围,所以下例中的"z..A"不是有效的ASCII编码表范围,抛出一条警告信息,且只有"zA."三个字符被添加反斜杠。
<?php
# 爱E族:aiezu.com
echo addcslashes("ABCz.123[_]abc", "z..A");
输出:
PHP Warning:  addcslashes(): Invalid '..'-range, '..'-range needs to be incrementing in /tmp/a.php on line 2
\ABC\z\.123[_]abc

PHP addslashes 函数

PHPllslx520 发表了文章 • 0 个评论 • 48 次浏览 • 2016-11-11 21:04 • 来自相关话题

一、函数功能:
  数据库查询语句的要求,在单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符) 等特殊字符前添加反斜杠。它是stripslashes()函数的反向操作函数。

二、函数语法:string addslashes($str)
三、函数参数:参数描述$str要为特殊字符添加反斜杠的元素字符串。
四、返回值:返回添加反斜杠完成的字符串。
五、用法举例:
1、基本用法:<?php
# 爱E族:aiezu.com
echo addslashes("it's\n");
echo addslashes('abc"def\123');输出:it\'s
abc\"def\\123 
2、给Sql查询参数添加反斜杠:<?php
# 爱E族:aiezu.com
#未使用addslashes函数添加反斜杠的SQL语句
$title = "it's";
$sql = "select * from Table where title='{$title}'";
echo '$sql值为: ' . $sql;
echo "\n\n";

#使用addslashes函数添加反斜杠的SQL语句:
$title = addslashes("it's");
$sql = "select * from Table where title='{$title}'";
echo '$sql值为: ' . $sql;输出:$sql值为: select * from Table where title='it's'

$sql值为: select * from Table where title='it\'s'注:上面一条SQL语句由于"it's"的单引号导致SQL中的title查询值闭合单引号提前闭合,而导致如下错误:
PHP Fatal error:  Uncaught exception 'Exception' with message 'MySQL Query Error : You have an error in your SQL syntax; check the manual that corresponds to your Mysql server version for the right syntax to use near 's'' at line 1<br /> SQL:select * from Table where title='it's'' in /tmp/mysql.php:148
 
3、对数组元素使用addslashes:<?php
# 爱E族:aiezu.com
function array_addslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_addslashes($value);
}
return $array;
}else{
return addslashes($array);
}
}
$arr = array(
'aa'=>"O'Reilly"
,'ab'=>array(
'ba'=>"It's"
,'bb'=>"Is't a book?"
)
);
$arr = array_addslashes($arr);
print_r($arr);输出:Array
(
[aa] => O\'Reilly
[ab] => Array
(
[ba] => It\'s
[bb] => Is\'t a book?
)

4、对浏览器发送到http服务器的数据进行addslashes转义:
  当php.ini配置文件中magic_quotes_gpc配置项值为On时,浏览器发送到服务器的数据($_POST, $_GET, $_COOKUE)会自动进行addslashes转义,无需再次进行addslashes转义(PHP 5.4 之前 magic_quotes_gpc 默认是 On)。我们可以通过get_magic_quotes_gpc函数检测magic_quotes_gpc配置项值是否为On:<?php
# 爱E族:aiezu.com
function array_addslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_addslashes($value);
}
return $array;
}else{
return addslashes($array);
}
}
if ( ! get_magic_quotes_gpc() ) {
$_POST = array_addslashes($_POST);
$_GET = array_addslashes($_GET);
$_COOKIE= array_addslashes($_COOKIE);
} 查看全部
一、函数功能:
  数据库查询语句的要求,在单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符) 等特殊字符前添加反斜杠。它是stripslashes()函数的反向操作函数。

二、函数语法:
string addslashes($str)

三、函数参数:
参数描述
$str要为特殊字符添加反斜杠的元素字符串。

四、返回值:
返回添加反斜杠完成的字符串。

五、用法举例:
1、基本用法:
<?php
# 爱E族:aiezu.com
echo addslashes("it's\n");
echo addslashes('abc"def\123');
输出:
it\'s
abc\"def\\123
 
2、给Sql查询参数添加反斜杠:
<?php
# 爱E族:aiezu.com
#未使用addslashes函数添加反斜杠的SQL语句
$title = "it's";
$sql = "select * from Table where title='{$title}'";
echo '$sql值为: ' . $sql;
echo "\n\n";

#使用addslashes函数添加反斜杠的SQL语句:
$title = addslashes("it's");
$sql = "select * from Table where title='{$title}'";
echo '$sql值为: ' . $sql;
输出:
$sql值为: select * from Table where title='it's'

$sql值为: select * from Table where title='it\'s'
注:上面一条SQL语句由于"it's"的单引号导致SQL中的title查询值闭合单引号提前闭合,而导致如下错误:
PHP Fatal error:  Uncaught exception 'Exception' with message 'MySQL Query Error : You have an error in your SQL syntax; check the manual that corresponds to your Mysql server version for the right syntax to use near 's'' at line 1<br /> SQL:select * from Table where title='it's'' in /tmp/mysql.php:148
 
3、对数组元素使用addslashes:
<?php
# 爱E族:aiezu.com
function array_addslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_addslashes($value);
}
return $array;
}else{
return addslashes($array);
}
}
$arr = array(
'aa'=>"O'Reilly"
,'ab'=>array(
'ba'=>"It's"
,'bb'=>"Is't a book?"
)
);
$arr = array_addslashes($arr);
print_r($arr);
输出:
Array
(
[aa] => O\'Reilly
[ab] => Array
(
[ba] => It\'s
[bb] => Is\'t a book?
)
)
 
4、对浏览器发送到http服务器的数据进行addslashes转义:
  当php.ini配置文件中magic_quotes_gpc配置项值为On时,浏览器发送到服务器的数据($_POST, $_GET, $_COOKUE)会自动进行addslashes转义,无需再次进行addslashes转义(PHP 5.4 之前 magic_quotes_gpc 默认是 On)。我们可以通过get_magic_quotes_gpc函数检测magic_quotes_gpc配置项值是否为On:
<?php
# 爱E族:aiezu.com
function array_addslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_addslashes($value);
}
return $array;
}else{
return addslashes($array);
}
}
if ( ! get_magic_quotes_gpc() ) {
$_POST = array_addslashes($_POST);
$_GET = array_addslashes($_GET);
$_COOKIE= array_addslashes($_COOKIE);
}

PHP chunk_split 函数详解

PHPllslx520 发表了文章 • 0 个评论 • 36 次浏览 • 2016-11-11 17:35 • 来自相关话题

一、函数功能:
  将字符串按指定长度、使用指定字符分隔开来。
 
二、函数语法: string chunk_split($str [, $blocksize = 76 [, $endadd = "\r\n" ]])
三、函数参数:参数描述$str切割前的原始字符串$blocksize可选,切割后的块长度,默认76$endadd可选,在切割后的每块后面追加的字符串,默认回车换行符(\r\n)
四、返回值:返回已分割的字符串。
五、用法举例:
1、将a-z 26个字母每7个字符使用一换行符(默认)分隔:<?php
//爱E族:aiezu.com
echo chunk_split("abcdefghijklmnopqrstuvwxyz", 7);输出:abcdefg
hijklmn
opqrstu
vwxyz 
2、将0-9十个字符,按2个字符、使用逗号(,)分隔:<?php
//爱E族:aiezu.com
echo chunk_split("0123456789", 2, ",");输出:01,23,45,67,89,
3、为汉字实现chunk_split功能:
  由于chunk_split()函数只支持单字节字符的字符串,下面我们自定义一个能支持多字节字符(如汉字)、类似chunk_split()函数功能的函数。<?php
//爱E族:aiezu.com
function utf8_chunk_split($str, $blocksize=76, $endadd="\r\n") {
$i = 0;
$blocks = array();
while( $i < mb_strlen($str, 'utf8') ) {
$blocks[] = mb_substr($str, $i, $blocksize, 'utf8') . $endadd;
$i+= $blocksize;
}
return join("", $blocks);
}
echo chunk_split('好好学习abcd1234天天向上', 4, ";");
echo PHP_EOL;
echo utf8_chunk_split('好好学习abcd1234天天向上', 4, ";");输出:好㻥½嫻¦习;abcd;1234;天㻤©去上;

好好学习;abcd;1234;天天向上; 查看全部
一、函数功能:
  将字符串按指定长度、使用指定字符分隔开来。
 
二、函数语法: 
string chunk_split($str [, $blocksize = 76 [, $endadd = "\r\n" ]])

三、函数参数:
参数描述
$str切割前的原始字符串
$blocksize可选,切割后的块长度,默认76
$endadd可选,在切割后的每块后面追加的字符串,默认回车换行符(\r\n)

四、返回值:
返回已分割的字符串。

五、用法举例:
1、将a-z 26个字母每7个字符使用一换行符(默认)分隔:
<?php
//爱E族:aiezu.com
echo chunk_split("abcdefghijklmnopqrstuvwxyz", 7);
输出:
abcdefg
hijklmn
opqrstu
vwxyz
 
2、将0-9十个字符,按2个字符、使用逗号(,)分隔:
<?php
//爱E族:aiezu.com
echo chunk_split("0123456789", 2, ",");
输出:
01,23,45,67,89,

3、为汉字实现chunk_split功能:
  由于chunk_split()函数只支持单字节字符的字符串,下面我们自定义一个能支持多字节字符(如汉字)、类似chunk_split()函数功能的函数。
<?php
//爱E族:aiezu.com
function utf8_chunk_split($str, $blocksize=76, $endadd="\r\n") {
$i = 0;
$blocks = array();
while( $i < mb_strlen($str, 'utf8') ) {
$blocks[] = mb_substr($str, $i, $blocksize, 'utf8') . $endadd;
$i+= $blocksize;
}
return join("", $blocks);
}
echo chunk_split('好好学习abcd1234天天向上', 4, ";");
echo PHP_EOL;
echo utf8_chunk_split('好好学习abcd1234天天向上', 4, ";");
输出:
好㻥½嫻¦习;abcd;1234;天㻤©去上;

好好学习;abcd;1234;天天向上;

PHP substr 函数详解

PHPllslx520 发表了文章 • 0 个评论 • 45 次浏览 • 2016-11-09 12:24 • 来自相关话题

一、函数功能:
  从字符串中指定位置开始、截取一个指定长度的子字符串。注:此函数只适合用于单字节字符串截取,如含多字节字符(如:汉字),请使用mb_substr()函数。
 
二、函数语法:string substr($string, $start [, $length ]) 
三、参数介绍:参数描述$string原始字符串;$start截取的开始位置。
  非负数:从字符串的指定位置开始截取;
  负数:从字符串结尾的指定位置开始;$length可选参数,截取长度,默认截取到字符串结尾。
  非负数:从$start位置截取指定长度;
  负数:从$start位置截取到字符串结尾指定位置。 
四、返回值:成功时返回:截取的子字符串; 失败时返回:false。
 
五、用法举例:
1、基本用法:<?php
//爱E族: aiezu.com
$str = '0123456789';
echo sprintf("从第5个后起截取到最后:%s\n", substr($str, 5));
echo sprintf("从第5个后起截取3个字符:%s\n", substr($str, 5, 2));
echo sprintf("从第5个后起截取到倒数第一个:%s\n", substr($str, 5, -1));
echo sprintf("从倒数第4个起截取到最后:%s\n", substr($str, -4));
echo sprintf("从倒数第4个起截取2个字符:%s\n", substr($str, -4, 2));
echo sprintf("从倒数第4个起截取到倒数第1个:%s\n", substr($str, -4, -1));输出结果:从第5个后起截取到最后:56789
从第5个后起截取3个字符:56
从第5个后起截取到倒数第一个:5678
从倒数第4个起截取到最后:6789
从倒数第4个起截取2个字符:67
从倒数第4个起截取到倒数第1个:678 查看全部
一、函数功能:
  从字符串中指定位置开始、截取一个指定长度的子字符串。注:此函数只适合用于单字节字符串截取,如含多字节字符(如:汉字),请使用mb_substr()函数。
 
二、函数语法:
string substr($string, $start [, $length ])
 
三、参数介绍:
参数描述
$string原始字符串;
$start截取的开始位置。
  非负数:从字符串的指定位置开始截取;
  负数:从字符串结尾的指定位置开始;
$length可选参数,截取长度,默认截取到字符串结尾。
  非负数:从$start位置截取指定长度;
  负数:从$start位置截取到字符串结尾指定位置。
 
四、返回值:
  • 成功时返回:截取的子字符串; 
  • 失败时返回:false。

 
五、用法举例:
1、基本用法:
<?php
//爱E族: aiezu.com
$str = '0123456789';
echo sprintf("从第5个后起截取到最后:%s\n", substr($str, 5));
echo sprintf("从第5个后起截取3个字符:%s\n", substr($str, 5, 2));
echo sprintf("从第5个后起截取到倒数第一个:%s\n", substr($str, 5, -1));
echo sprintf("从倒数第4个起截取到最后:%s\n", substr($str, -4));
echo sprintf("从倒数第4个起截取2个字符:%s\n", substr($str, -4, 2));
echo sprintf("从倒数第4个起截取到倒数第1个:%s\n", substr($str, -4, -1));
输出结果:
从第5个后起截取到最后:56789
从第5个后起截取3个字符:56
从第5个后起截取到倒数第一个:5678
从倒数第4个起截取到最后:6789
从倒数第4个起截取2个字符:67
从倒数第4个起截取到倒数第1个:678

PHP将逗号分隔的字符串转换成一个数组

回复

PHP匿名用户 回复了问题 • 1 人关注 • 1 个回复 • 64 次浏览 • 2016-10-28 14:22 • 来自相关话题

PHP将数字转换为字符串,最小三位长度,不足的前面补零

回复

PHPliuliangsong 回复了问题 • 1 人关注 • 1 个回复 • 59 次浏览 • 2016-10-28 13:51 • 来自相关话题

PHP stripcslashes 函数

PHPllslx520 发表了文章 • 0 个评论 • 51 次浏览 • 2016-11-11 22:16 • 来自相关话题

一、函数功能:
  将反斜杠"\"开头的"\n"、"\r"…、八进制、十六进制,转换为对应的字符。它是addcslashes()函数的反向操作函数。
 
二、函数语法:string stripcslashes($str)
三、函数参数:参数描述$str需要反转义的字符串。
四、返回值:返回转义后的字符串。
五、用法举例:
1、单个字符:<?php
# 爱E族:aiezu.com
$str = "\\x41"; #ASCII编码表中A的十六进制表示41
echo sprintf("%s 经函数stripcslashes处理后为:%s;\n\n", $str, stripcslashes($str));

$str = "\\102"; #ASCII编码表中A的八进制表示102
echo sprintf("%s 经函数stripcslashes处理后为:%s;\n\n", $str, stripcslashes($str));

$str = "\\n"; #ASCII编码表中换行符
echo sprintf("%s 经函数stripcslashes处理后为(实现换行):%s;\n\n", $str, stripcslashes($str));输出:\x41 经函数stripcslashes处理后为:A;

\102 经函数stripcslashes处理后为:B;

\n 经函数stripcslashes处理后为(实现换行):

2、多个字符:<?php
echo stripcslashes("\x61\x69\x65\x7a\x75\x2e\x63\x6f\x6d");
echo "\n";
echo stripcslashes("\xe5\xa5\xbd\xe5\xa5\xbd\xe5\xad\xa6\xe4\xb9\xa0");运行结果:aiezu.com
好好学习
3、stripcslashes与stripslashes的区别:
  stripcslashes()会将"\"开头的八进制、十六进制转换为对应的ASCII字符,而stripslashes()是简单的移除反斜杠:<?php
#爱E族 aiezu.com
$str = "\\x41";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));

$str = "\\102";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));运行结果:\x41 stripslashes:x41 stripcslashes:A
\102 stripslashes:102 stripcslashes:B 查看全部
一、函数功能:
  将反斜杠"\"开头的"\n"、"\r"…、八进制、十六进制,转换为对应的字符。它是addcslashes()函数的反向操作函数。
 
二、函数语法:
string stripcslashes($str)

三、函数参数:
参数描述
$str需要反转义的字符串。

四、返回值:
返回转义后的字符串。

五、用法举例:
1、单个字符:
<?php
# 爱E族:aiezu.com
$str = "\\x41"; #ASCII编码表中A的十六进制表示41
echo sprintf("%s 经函数stripcslashes处理后为:%s;\n\n", $str, stripcslashes($str));

$str = "\\102"; #ASCII编码表中A的八进制表示102
echo sprintf("%s 经函数stripcslashes处理后为:%s;\n\n", $str, stripcslashes($str));

$str = "\\n"; #ASCII编码表中换行符
echo sprintf("%s 经函数stripcslashes处理后为(实现换行):%s;\n\n", $str, stripcslashes($str));
输出:
\x41 经函数stripcslashes处理后为:A;

\102 经函数stripcslashes处理后为:B;

\n 经函数stripcslashes处理后为(实现换行):
;
 
2、多个字符:
<?php
echo stripcslashes("\x61\x69\x65\x7a\x75\x2e\x63\x6f\x6d");
echo "\n";
echo stripcslashes("\xe5\xa5\xbd\xe5\xa5\xbd\xe5\xad\xa6\xe4\xb9\xa0");
运行结果:
aiezu.com
好好学习

3、stripcslashes与stripslashes的区别:
  stripcslashes()会将"\"开头的八进制、十六进制转换为对应的ASCII字符,而stripslashes()是简单的移除反斜杠:
<?php
#爱E族 aiezu.com
$str = "\\x41";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));

$str = "\\102";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));
运行结果:
\x41 stripslashes:x41 stripcslashes:A
\102 stripslashes:102 stripcslashes:B

PHP stripslashes 函数

PHPllslx520 发表了文章 • 0 个评论 • 54 次浏览 • 2016-11-11 21:52 • 来自相关话题

一、函数功能:
  addslashes的反向操作,移除addslashes()函数添加的转义反斜杠字符。

二、函数语法:string stripslashes($str)
三、函数参数:参数描述$str要移除转义反斜杠的字符串。
四、返回值:返回移除转义反斜杠后的字符串
五、用法举例:
1、基本用法:<?php
$str = "it\'s";
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

$str = '欢迎来到\"爱E族:aiezu.com\"';
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

$str = 'abc\\ndef';
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));输出:it\'s >转换为-> it's
欢迎来到\"爱E族:aiezu.com\" >转换为-> 欢迎来到"爱E族:aiezu.com"
abc\ndef >转换为-> abcndef
 
2、移除规则:<?php
#一个斜杠时移除斜杠
$str = "it\\'s"; #每两个斜杠转为一个斜杠,变量$str值只包含一个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续两个斜杠时移除一个斜杠
$str = "\\\\"; #此处变量$str值实际为两个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续三个斜杠时移除两个斜杠
$str = "\\\\\\"; #此处变量$str值实际为三个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续四个斜杠时移除个斜杠
$str = "\\\\\\\\"; #此处变量$str值实际为四个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));输出:it\'s >转换为-> it's
\\ >转换为-> \
\\\ >转换为-> \
\\\\ >转换为-> \\ 
3、移除多维数组值的反斜杠:<?php
function array_stripslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_stripslashes($value);
}
return $array;
}else{
return stripslashes($array);
}
}
$arr = array(
'aa'=>"爱E族"
,'ab'=>array(
'ba'=>"\'aiezu.com\'"
,'bb'=>"Is\'t a book?"
)
);
$arr = array_stripslashes($arr);
print_r($arr);输出:Array
(
[aa] => 爱E族
[ab] => Array
(
[ba] => 'aiezu.com'
[bb] => Is't a book?
)
)
4、stripslashes与stripcslashes的区别:
  stripslashes()是简单的移除反斜杠,而stripcslashes()会将"\"开头的八进制、十六进制转换为对应的ASCII字符:<?php
#爱E族: aiezu.com
$str = "\\x41";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));

$str = "\\102";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));输出:\x41 stripslashes:x41 stripcslashes:A
\102 stripslashes:102 stripcslashes:B  查看全部
一、函数功能:
  addslashes的反向操作,移除addslashes()函数添加的转义反斜杠字符。

二、函数语法:
string stripslashes($str)

三、函数参数:
参数描述
$str要移除转义反斜杠的字符串。

四、返回值:
返回移除转义反斜杠后的字符串

五、用法举例:
1、基本用法:
<?php
$str = "it\'s";
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

$str = '欢迎来到\"爱E族:aiezu.com\"';
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

$str = 'abc\\ndef';
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));
输出:
it\'s >转换为-> it's
欢迎来到\"爱E族:aiezu.com\" >转换为-> 欢迎来到"爱E族:aiezu.com"
abc\ndef >转换为-> abcndef

 
2、移除规则:
<?php
#一个斜杠时移除斜杠
$str = "it\\'s"; #每两个斜杠转为一个斜杠,变量$str值只包含一个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续两个斜杠时移除一个斜杠
$str = "\\\\"; #此处变量$str值实际为两个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续三个斜杠时移除两个斜杠
$str = "\\\\\\"; #此处变量$str值实际为三个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));

#连续四个斜杠时移除个斜杠
$str = "\\\\\\\\"; #此处变量$str值实际为四个斜杠
echo sprintf("%s >转换为-> %s\n", $str, stripslashes($str));
输出:
it\'s >转换为-> it's
\\ >转换为-> \
\\\ >转换为-> \
\\\\ >转换为-> \\
 
3、移除多维数组值的反斜杠:
<?php
function array_stripslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_stripslashes($value);
}
return $array;
}else{
return stripslashes($array);
}
}
$arr = array(
'aa'=>"爱E族"
,'ab'=>array(
'ba'=>"\'aiezu.com\'"
,'bb'=>"Is\'t a book?"
)
);
$arr = array_stripslashes($arr);
print_r($arr);
输出:
Array
(
[aa] => 爱E族
[ab] => Array
(
[ba] => 'aiezu.com'
[bb] => Is't a book?
)
)

4、stripslashes与stripcslashes的区别:
  stripslashes()是简单的移除反斜杠,而stripcslashes()会将"\"开头的八进制、十六进制转换为对应的ASCII字符:
<?php
#爱E族: aiezu.com
$str = "\\x41";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));

$str = "\\102";
echo sprintf("%s stripslashes:%s stripcslashes:%s\n", $str, stripslashes($str), stripcslashes($str));
输出:
\x41 stripslashes:x41 stripcslashes:A
\102 stripslashes:102 stripcslashes:B
 

PHP addcslashes 函数

PHPllslx520 发表了文章 • 0 个评论 • 39 次浏览 • 2016-11-11 21:23 • 来自相关话题

一、函数功能:
  以 C 语言风格为字符串中的“指定字符”添加反斜杠。它是stripcslashes()函数的反向操作函数,同时它也是stripcslashes()函数的升级版。

二、函数语法:string addcslashes($str, $charlist)
三、函数参数:参数描述$str要添加反斜杠的原始字符串$charlist指定要添加反斜杠的字符合集
1、指定多个字符:“abc”,“123”,“、“abc123\t\n”;
2、使用斜杠开头的八进制:“\020\018”,“\096”(对于不可见字符非常有用);
3、指定一个范围:“\141..\177”,“a..z”,“0..9”。
四、返回值:返回添加反斜杠完成的字符串。
五、用法举例:
1、为换行符和制表符添加反斜杠:
  换行符和制表符经过下面addcslashes函数处理后,不再有换行,而是用加了斜杠的转义符形式表示(\011为制表符\b的ASCII八进制编码):<?php
# 爱E族:aiezu.com
$str1 = "ab
cd ef";
echo addcslashes($str1, "\n\011");输出:ab\ncd\tef 
2、通过ASCII编码表范围,指定要添加反斜杠的字符:
  此例中除数字123外,其他字符都被添加反斜杠,因为其他字符都在ASCII编码表的“A..z”范围内:<?php
# 爱E族:aiezu.com
echo addcslashes("ABC123[_]abc", "A..z");
echo addcslashes("ABC123[_]abc", "\101..\172");输出:\A\B\C123\[\_\]\a\b\c
\A\B\C123\[\_\]\a\b\c 
3、无效的ASCII编码表范围:
  由于只有递增才是有效的ASCII编码表范围,所以下例中的"z..A"不是有效的ASCII编码表范围,抛出一条警告信息,且只有"zA."三个字符被添加反斜杠。<?php
# 爱E族:aiezu.com
echo addcslashes("ABCz.123[_]abc", "z..A");输出:PHP Warning: addcslashes(): Invalid '..'-range, '..'-range needs to be incrementing in /tmp/a.php on line 2
\ABC\z\.123[_]abc 查看全部
一、函数功能:
  以 C 语言风格为字符串中的“指定字符”添加反斜杠。它是stripcslashes()函数的反向操作函数,同时它也是stripcslashes()函数的升级版。

二、函数语法:
string addcslashes($str, $charlist)

三、函数参数:
参数描述
$str要添加反斜杠的原始字符串
$charlist指定要添加反斜杠的字符合集
1、指定多个字符:“abc”,“123”,“、“abc123\t\n”;
2、使用斜杠开头的八进制:“\020\018”,“\096”(对于不可见字符非常有用);
3、指定一个范围:“\141..\177”,“a..z”,“0..9”。

四、返回值:
返回添加反斜杠完成的字符串。

五、用法举例:
1、为换行符和制表符添加反斜杠:
  换行符和制表符经过下面addcslashes函数处理后,不再有换行,而是用加了斜杠的转义符形式表示(\011为制表符\b的ASCII八进制编码):
<?php
# 爱E族:aiezu.com
$str1 = "ab
cd ef";
echo addcslashes($str1, "\n\011");
输出:
ab\ncd\tef
 
2、通过ASCII编码表范围,指定要添加反斜杠的字符:
  此例中除数字123外,其他字符都被添加反斜杠,因为其他字符都在ASCII编码表的“A..z”范围内:
<?php
# 爱E族:aiezu.com
echo addcslashes("ABC123[_]abc", "A..z");
echo addcslashes("ABC123[_]abc", "\101..\172");
输出:
\A\B\C123\[\_\]\a\b\c
\A\B\C123\[\_\]\a\b\c
 
3、无效的ASCII编码表范围:
  由于只有递增才是有效的ASCII编码表范围,所以下例中的"z..A"不是有效的ASCII编码表范围,抛出一条警告信息,且只有"zA."三个字符被添加反斜杠。
<?php
# 爱E族:aiezu.com
echo addcslashes("ABCz.123[_]abc", "z..A");
输出:
PHP Warning:  addcslashes(): Invalid '..'-range, '..'-range needs to be incrementing in /tmp/a.php on line 2
\ABC\z\.123[_]abc

PHP addslashes 函数

PHPllslx520 发表了文章 • 0 个评论 • 48 次浏览 • 2016-11-11 21:04 • 来自相关话题

一、函数功能:
  数据库查询语句的要求,在单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符) 等特殊字符前添加反斜杠。它是stripslashes()函数的反向操作函数。

二、函数语法:string addslashes($str)
三、函数参数:参数描述$str要为特殊字符添加反斜杠的元素字符串。
四、返回值:返回添加反斜杠完成的字符串。
五、用法举例:
1、基本用法:<?php
# 爱E族:aiezu.com
echo addslashes("it's\n");
echo addslashes('abc"def\123');输出:it\'s
abc\"def\\123 
2、给Sql查询参数添加反斜杠:<?php
# 爱E族:aiezu.com
#未使用addslashes函数添加反斜杠的SQL语句
$title = "it's";
$sql = "select * from Table where title='{$title}'";
echo '$sql值为: ' . $sql;
echo "\n\n";

#使用addslashes函数添加反斜杠的SQL语句:
$title = addslashes("it's");
$sql = "select * from Table where title='{$title}'";
echo '$sql值为: ' . $sql;输出:$sql值为: select * from Table where title='it's'

$sql值为: select * from Table where title='it\'s'注:上面一条SQL语句由于"it's"的单引号导致SQL中的title查询值闭合单引号提前闭合,而导致如下错误:
PHP Fatal error:  Uncaught exception 'Exception' with message 'MySQL Query Error : You have an error in your SQL syntax; check the manual that corresponds to your Mysql server version for the right syntax to use near 's'' at line 1<br /> SQL:select * from Table where title='it's'' in /tmp/mysql.php:148
 
3、对数组元素使用addslashes:<?php
# 爱E族:aiezu.com
function array_addslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_addslashes($value);
}
return $array;
}else{
return addslashes($array);
}
}
$arr = array(
'aa'=>"O'Reilly"
,'ab'=>array(
'ba'=>"It's"
,'bb'=>"Is't a book?"
)
);
$arr = array_addslashes($arr);
print_r($arr);输出:Array
(
[aa] => O\'Reilly
[ab] => Array
(
[ba] => It\'s
[bb] => Is\'t a book?
)

4、对浏览器发送到http服务器的数据进行addslashes转义:
  当php.ini配置文件中magic_quotes_gpc配置项值为On时,浏览器发送到服务器的数据($_POST, $_GET, $_COOKUE)会自动进行addslashes转义,无需再次进行addslashes转义(PHP 5.4 之前 magic_quotes_gpc 默认是 On)。我们可以通过get_magic_quotes_gpc函数检测magic_quotes_gpc配置项值是否为On:<?php
# 爱E族:aiezu.com
function array_addslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_addslashes($value);
}
return $array;
}else{
return addslashes($array);
}
}
if ( ! get_magic_quotes_gpc() ) {
$_POST = array_addslashes($_POST);
$_GET = array_addslashes($_GET);
$_COOKIE= array_addslashes($_COOKIE);
} 查看全部
一、函数功能:
  数据库查询语句的要求,在单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符) 等特殊字符前添加反斜杠。它是stripslashes()函数的反向操作函数。

二、函数语法:
string addslashes($str)

三、函数参数:
参数描述
$str要为特殊字符添加反斜杠的元素字符串。

四、返回值:
返回添加反斜杠完成的字符串。

五、用法举例:
1、基本用法:
<?php
# 爱E族:aiezu.com
echo addslashes("it's\n");
echo addslashes('abc"def\123');
输出:
it\'s
abc\"def\\123
 
2、给Sql查询参数添加反斜杠:
<?php
# 爱E族:aiezu.com
#未使用addslashes函数添加反斜杠的SQL语句
$title = "it's";
$sql = "select * from Table where title='{$title}'";
echo '$sql值为: ' . $sql;
echo "\n\n";

#使用addslashes函数添加反斜杠的SQL语句:
$title = addslashes("it's");
$sql = "select * from Table where title='{$title}'";
echo '$sql值为: ' . $sql;
输出:
$sql值为: select * from Table where title='it's'

$sql值为: select * from Table where title='it\'s'
注:上面一条SQL语句由于"it's"的单引号导致SQL中的title查询值闭合单引号提前闭合,而导致如下错误:
PHP Fatal error:  Uncaught exception 'Exception' with message 'MySQL Query Error : You have an error in your SQL syntax; check the manual that corresponds to your Mysql server version for the right syntax to use near 's'' at line 1<br /> SQL:select * from Table where title='it's'' in /tmp/mysql.php:148
 
3、对数组元素使用addslashes:
<?php
# 爱E族:aiezu.com
function array_addslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_addslashes($value);
}
return $array;
}else{
return addslashes($array);
}
}
$arr = array(
'aa'=>"O'Reilly"
,'ab'=>array(
'ba'=>"It's"
,'bb'=>"Is't a book?"
)
);
$arr = array_addslashes($arr);
print_r($arr);
输出:
Array
(
[aa] => O\'Reilly
[ab] => Array
(
[ba] => It\'s
[bb] => Is\'t a book?
)
)
 
4、对浏览器发送到http服务器的数据进行addslashes转义:
  当php.ini配置文件中magic_quotes_gpc配置项值为On时,浏览器发送到服务器的数据($_POST, $_GET, $_COOKUE)会自动进行addslashes转义,无需再次进行addslashes转义(PHP 5.4 之前 magic_quotes_gpc 默认是 On)。我们可以通过get_magic_quotes_gpc函数检测magic_quotes_gpc配置项值是否为On:
<?php
# 爱E族:aiezu.com
function array_addslashes( $array ){
if(is_array($array) ){
foreach($array as $key=>&$value){
$value=array_addslashes($value);
}
return $array;
}else{
return addslashes($array);
}
}
if ( ! get_magic_quotes_gpc() ) {
$_POST = array_addslashes($_POST);
$_GET = array_addslashes($_GET);
$_COOKIE= array_addslashes($_COOKIE);
}

PHP chunk_split 函数详解

PHPllslx520 发表了文章 • 0 个评论 • 36 次浏览 • 2016-11-11 17:35 • 来自相关话题

一、函数功能:
  将字符串按指定长度、使用指定字符分隔开来。
 
二、函数语法: string chunk_split($str [, $blocksize = 76 [, $endadd = "\r\n" ]])
三、函数参数:参数描述$str切割前的原始字符串$blocksize可选,切割后的块长度,默认76$endadd可选,在切割后的每块后面追加的字符串,默认回车换行符(\r\n)
四、返回值:返回已分割的字符串。
五、用法举例:
1、将a-z 26个字母每7个字符使用一换行符(默认)分隔:<?php
//爱E族:aiezu.com
echo chunk_split("abcdefghijklmnopqrstuvwxyz", 7);输出:abcdefg
hijklmn
opqrstu
vwxyz 
2、将0-9十个字符,按2个字符、使用逗号(,)分隔:<?php
//爱E族:aiezu.com
echo chunk_split("0123456789", 2, ",");输出:01,23,45,67,89,
3、为汉字实现chunk_split功能:
  由于chunk_split()函数只支持单字节字符的字符串,下面我们自定义一个能支持多字节字符(如汉字)、类似chunk_split()函数功能的函数。<?php
//爱E族:aiezu.com
function utf8_chunk_split($str, $blocksize=76, $endadd="\r\n") {
$i = 0;
$blocks = array();
while( $i < mb_strlen($str, 'utf8') ) {
$blocks[] = mb_substr($str, $i, $blocksize, 'utf8') . $endadd;
$i+= $blocksize;
}
return join("", $blocks);
}
echo chunk_split('好好学习abcd1234天天向上', 4, ";");
echo PHP_EOL;
echo utf8_chunk_split('好好学习abcd1234天天向上', 4, ";");输出:好㻥½嫻¦习;abcd;1234;天㻤©去上;

好好学习;abcd;1234;天天向上; 查看全部
一、函数功能:
  将字符串按指定长度、使用指定字符分隔开来。
 
二、函数语法: 
string chunk_split($str [, $blocksize = 76 [, $endadd = "\r\n" ]])

三、函数参数:
参数描述
$str切割前的原始字符串
$blocksize可选,切割后的块长度,默认76
$endadd可选,在切割后的每块后面追加的字符串,默认回车换行符(\r\n)

四、返回值:
返回已分割的字符串。

五、用法举例:
1、将a-z 26个字母每7个字符使用一换行符(默认)分隔:
<?php
//爱E族:aiezu.com
echo chunk_split("abcdefghijklmnopqrstuvwxyz", 7);
输出:
abcdefg
hijklmn
opqrstu
vwxyz
 
2、将0-9十个字符,按2个字符、使用逗号(,)分隔:
<?php
//爱E族:aiezu.com
echo chunk_split("0123456789", 2, ",");
输出:
01,23,45,67,89,

3、为汉字实现chunk_split功能:
  由于chunk_split()函数只支持单字节字符的字符串,下面我们自定义一个能支持多字节字符(如汉字)、类似chunk_split()函数功能的函数。
<?php
//爱E族:aiezu.com
function utf8_chunk_split($str, $blocksize=76, $endadd="\r\n") {
$i = 0;
$blocks = array();
while( $i < mb_strlen($str, 'utf8') ) {
$blocks[] = mb_substr($str, $i, $blocksize, 'utf8') . $endadd;
$i+= $blocksize;
}
return join("", $blocks);
}
echo chunk_split('好好学习abcd1234天天向上', 4, ";");
echo PHP_EOL;
echo utf8_chunk_split('好好学习abcd1234天天向上', 4, ";");
输出:
好㻥½嫻¦习;abcd;1234;天㻤©去上;

好好学习;abcd;1234;天天向上;

PHP substr 函数详解

PHPllslx520 发表了文章 • 0 个评论 • 45 次浏览 • 2016-11-09 12:24 • 来自相关话题

一、函数功能:
  从字符串中指定位置开始、截取一个指定长度的子字符串。注:此函数只适合用于单字节字符串截取,如含多字节字符(如:汉字),请使用mb_substr()函数。
 
二、函数语法:string substr($string, $start [, $length ]) 
三、参数介绍:参数描述$string原始字符串;$start截取的开始位置。
  非负数:从字符串的指定位置开始截取;
  负数:从字符串结尾的指定位置开始;$length可选参数,截取长度,默认截取到字符串结尾。
  非负数:从$start位置截取指定长度;
  负数:从$start位置截取到字符串结尾指定位置。 
四、返回值:成功时返回:截取的子字符串; 失败时返回:false。
 
五、用法举例:
1、基本用法:<?php
//爱E族: aiezu.com
$str = '0123456789';
echo sprintf("从第5个后起截取到最后:%s\n", substr($str, 5));
echo sprintf("从第5个后起截取3个字符:%s\n", substr($str, 5, 2));
echo sprintf("从第5个后起截取到倒数第一个:%s\n", substr($str, 5, -1));
echo sprintf("从倒数第4个起截取到最后:%s\n", substr($str, -4));
echo sprintf("从倒数第4个起截取2个字符:%s\n", substr($str, -4, 2));
echo sprintf("从倒数第4个起截取到倒数第1个:%s\n", substr($str, -4, -1));输出结果:从第5个后起截取到最后:56789
从第5个后起截取3个字符:56
从第5个后起截取到倒数第一个:5678
从倒数第4个起截取到最后:6789
从倒数第4个起截取2个字符:67
从倒数第4个起截取到倒数第1个:678 查看全部
一、函数功能:
  从字符串中指定位置开始、截取一个指定长度的子字符串。注:此函数只适合用于单字节字符串截取,如含多字节字符(如:汉字),请使用mb_substr()函数。
 
二、函数语法:
string substr($string, $start [, $length ])
 
三、参数介绍:
参数描述
$string原始字符串;
$start截取的开始位置。
  非负数:从字符串的指定位置开始截取;
  负数:从字符串结尾的指定位置开始;
$length可选参数,截取长度,默认截取到字符串结尾。
  非负数:从$start位置截取指定长度;
  负数:从$start位置截取到字符串结尾指定位置。
 
四、返回值:
  • 成功时返回:截取的子字符串; 
  • 失败时返回:false。

 
五、用法举例:
1、基本用法:
<?php
//爱E族: aiezu.com
$str = '0123456789';
echo sprintf("从第5个后起截取到最后:%s\n", substr($str, 5));
echo sprintf("从第5个后起截取3个字符:%s\n", substr($str, 5, 2));
echo sprintf("从第5个后起截取到倒数第一个:%s\n", substr($str, 5, -1));
echo sprintf("从倒数第4个起截取到最后:%s\n", substr($str, -4));
echo sprintf("从倒数第4个起截取2个字符:%s\n", substr($str, -4, 2));
echo sprintf("从倒数第4个起截取到倒数第1个:%s\n", substr($str, -4, -1));
输出结果:
从第5个后起截取到最后:56789
从第5个后起截取3个字符:56
从第5个后起截取到倒数第一个:5678
从倒数第4个起截取到最后:6789
从倒数第4个起截取2个字符:67
从倒数第4个起截取到倒数第1个:678