05-PHP使用过的函数 41-50

本文介绍了PHP中几个重要的字符串处理函数,如trim用于去除首尾空白字符,strip_tags移除HTML和PHP标签,以及$_SERVER变量用于获取服务器信息。还讲解了parse_str用于解析字符串成变量,以及explode用于分割字符串。同时提到了数组操作的current、key、next和prev函数,用于遍历和操作数组。
摘要由CSDN通过智能技术生成

 41、trim

去除字符串首尾处的空白字符(或者其他字符)

//查询长度strlen
$str = '  php.cn  ';
//每一个空格也会被计入长度
echo strlen($str) . '<hr>';
//用trim可以取消对空格的计算
echo strlen(trim($str)) . '<hr>';
$str = trim($str);

参见

  • ltrim() - 删除字符串开头的空白字符(或其他字符)
  • rtrim() - 删除字符串末端的空白字符(或者其他字符)

 42、strip_tags

从字符串中去除 HTML 和 PHP 标签

示例1: 

<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";

// 允许 <p> 和 <a>
echo strip_tags($text, '<p><a>');

// 自 PHP 7.4.0 起,上面的行可以写成:
// echo strip_tags($text, ['p', 'a']);
?>

 以上例程会输出:

Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>

示例2:

echo strip_tags('<h1>php.cn</h1><?php echo \'Hello\' ?>');

 以上例程会输出:

php.cn

43、$_SERVER

$_SERVER 是 PHP 预定义变量之一,可以直接使用,它是一个包含了诸如头信息(header)、路径(path)及脚本位置(script locations)信息的数组。 

44、parse_str 

将字符串解析成多个变量

示例1: 

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";

// 推荐用法
parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

// 不建议这么用
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
?>

由于 PHP 的变量名不能带「点」和「空格」,所以它们会被转化成下划线。 用本函数带 result 参数,也会应用同样规则到数组的键名。 

示例2:parse_str() 名称改写 

<?php
parse_str("My Value=Something");
echo $My_Value; // Something

parse_str("My Value=Something", $output);
echo $output['My_Value']; // Something
?>

注意:

要获取当前的 QUERY_STRING,可以使用 $_SERVER['QUERY_STRING'] 变量。 所以你可能想要阅读 来自 PHP 之外的变量这个章节。

//4.url相关
// \?后面的内容叫查询字符串,是用于get请求的,向服务器发送查询参数的,可以通过系统常量拿到这些参数
$url = 'http://phpedu.io/0810/demo4.php?a=1&b=2';
echo '<hr>';
// print_r($_SERVER);
//在上面打印的常量中,有一个[QUERY_STRING] =>里面拿到的就是查询字符串的内容

echo $_SERVER['QUERY_STRING'];

//parse_str可以把一个查询字符串解析到一个数组中去
parse_str($_SERVER['QUERY_STRING'],$arr);
printf('<pre>%s</pre>',print_r($arr,true));

 45、parse_url

解析 URL,返回其组成部分

//parse_url()将url地址转换为数组
$arr = parse_url($url);
printf('<pre>%s</pre>',print_r($arr,true));

 以上例程会输出:

Array
(
    [scheme] => http
    [host] => phpedu.io
    [path] => /0810/demo4.php
    [query] => a=1&b=2
)
//以下两个完全相等
echo parse_url($url)['query'] === $_SERVER['QUERY_STRING'];

 46、explode

使用一个字符串分割另一个字符串

示例1: 

<?php
// 示例 1
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

// 示例 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

?>

 示例2:

<?php
/*
  字符串内不包含分隔字符时,
  会简单返回只有一个原始字符串元素的 array。
*/
$input1 = "hello";
$input2 = "hello,there";
$input3 = ',';
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );
var_dump( explode( ',', $input3 ) );

?>

以上例程会输出:

array(1)
(
    [0] => string(5) "hello"
)
array(2)
(
    [0] => string(5) "hello"
    [1] => string(5) "there"
)
array(2)
(
    [0] => string(0) ""
    [1] => string(0) ""
)

示例3: limit参数的例子

<?php
$str = 'one|two|three|four';

// 正数的 limit
print_r(explode('|', $str, 2));

// 负数的 limit
print_r(explode('|', $str, -1));
?>

以上例程会输出:

Array
(
    [0] => one
    [1] => two|three|four
)
Array
(
    [0] => one
    [1] => two
    [2] => three
)

47、current

返回数组中的当前值

current() 函数返回当前被内部指针指向的数组单元的值,并不移动指针。如果内部指针指向超出了单元列表的末端,current() 将返回 false。 

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = current($transport); // $mode = 'bike';
$mode = prev($transport);    // $mode = 'foot';
$mode = end($transport);     // $mode = 'plane';
$mode = current($transport); // $mode = 'plane';

$arr = array();
var_dump(current($arr)); // bool(false)

$arr = array(array());
var_dump(current($arr)); // array(0) { }
?>

48、key 

返回数组中当前单元的键名

<?php
$array = array(
    'fruit1' => 'apple',
    'fruit2' => 'orange',
    'fruit3' => 'grape',
    'fruit4' => 'apple',
    'fruit5' => 'apple');

// 此循环将会输出数组中所有值等于 “apple” 的键(key)
while ($fruit_name = current($array)) {
    if ($fruit_name == 'apple') {
        echo key($array), "\n";
    }
    next($array);
}
?>

以上例程会输出:

fruit1
fruit4
fruit5

 49、next

将数组中的内部指针向前移动一位

next() 和 current() 的行为类似,只有一点区别,在返回值之前将内部指针向前移动一位。这意味着它返回的是下一个数组单元的值并将数组指针向前移动了一位。

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = next($transport);    // $mode = 'car';
$mode = prev($transport);    // $mode = 'bike';
$mode = end($transport);     // $mode = 'plane';
?>

注意: 很难区别是到了数组尾部还是元素为 bool false 。要正确遍历可能含有 false 单元的数组,参见 foreach 函数。 仍要使用 next() 并正确检测是否到了数组尾部,需要检查 key()是否为 null。 

 50、prev

将数组的内部指针倒回一位

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = next($transport);    // $mode = 'car';
$mode = prev($transport);    // $mode = 'bike';
$mode = end($transport);     // $mode = 'plane';
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七色的天空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值