preg_match()//explode()// 输出函数//assert()//trim()

1.preg_match()

这是一个正则表达式匹配的函数,其用法如下:


查找文本字符串"php":
<?php
//模式分隔符后的"i"标记这是一个大小写不敏感的搜索
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
    echo "查找到匹配的字符串 php。";
} else {
    echo "未发现匹配的字符串 php。";
}
?>

执行结果如下所示:

查找到匹配的字符串 php。

preg_match("//"),这是基本格式//之间是要匹配的表达式规则。


查找单词"web"
<?php
/* 模式中的\b标记一个单词边界,所以只有独立的单词"web"会被匹配,而不会匹配
 * 单词的部分内容比如"webbing" 或 "cobweb" */
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
    echo "查找到匹配的字符串。\n";
} else {
    echo "未发现匹配的字符串。\n";
}
 
if (preg_match("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
    echo "查找到匹配的字符串。\n";
} else {
    echo "未发现匹配的字符串。\n";
}
?>

执行结果如下所示:

查找到匹配的字符串。
未发现匹配的字符串。

 \b表示边界。

下面是常用的匹配符号:

1.表达式直接写出来的字符串直接利用,如key
2.“.”代表任意字符
3.“*”代表一个或一序列字符重复出现的次数,即前一个字符重复任意次
4.“\/”代表“/”
5.[a-z]代表a-z中的任意一个字符
6.[[:punct:]]代表任意一个字符,包括各种符号
7./i代表大小写不敏感
8.{4-7}代表[0-9]中数字连续出现的次数是4-7次

例题:bugku字符?正则(第27个)

2.explode() 函数

把字符串打散为数组。

例:

<?php
$str = "Hello world. I love Shanghai!";
print_r (explode(" ",$str));
?>  

结果:Array ( [0] => Hello [1] => world. [2] => I [3] => love [4] => Shanghai! )

3.scandir() 函数
直接上例子

实例

列出 images 目录中的文件和目录:

<?php 
$dir = "/images/"; 
// 以升序排序 - 默认 
$a =scandir($dir);
// 以降序排序 
$b =scandir($dir,1);
print_r($a);
print_r($b);
?>

结果:

Array
(
[0] => .
[1] => ..
[2] => cat.gif
[3] => dog.gif
[4] => horse.gif
[5] => myimages
)
Array
(
[0] => myimages
[1] => horse.gif
[2] => dog.gif
[3] => cat.gif
[4] => ..
[5] => .
)

定义和用法(注意返回值)

scandir() 函数返回指定目录中的文件和目录的数组。

语法

scandir(directory,sorting_order,context);
参数描述
directory必需。规定要扫描的目录。
sorting_order

可选。规定排列顺序。默认是 0,表示按字母升序排列。

如果设置为 SCANDIR_SORT_DESCENDING 或者 1,则表示按字母降序排列。

如果设置为 SCANDIR_SORT_NONE,则返回未排列的结果。

context可选。规定目录句柄的环境。context 是可修改目录流的行为的一套选项。

技术细节

返回值:

若成功则返回文件和目录的数组。失败则返回 FALSE。

如果 directory 不是目录,则抛出 E_WARNING 级别的错误。

PHP 版本:5.0+
PHP 更新日志:PHP 5.4:新增 sorting_order 常量。

 注:扫描的目录也可用

1、./是当前目录

2、../是父级目录

3、/是根目录

3.输出函数

常见的输出语句

echo()
可以一次输出多个字符串,多个值之间用逗号分隔。echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用。用法 echo  或者  echo()

print()
print()输出一个字符串。print() 实际上不是一个函数(它是一个语言结构)所以不能被可变函数调用,因此你可以不必使用圆括号来括起它的参数列表。(不能输出数组)  用法print   或者print()

print_r()
可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Array开头。但print_r()输出布尔值和NULL的结果没有意义,因为都是打印"\n"。因此用var_dump()函数更适合调试。

var_dump()
判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型。此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

 

 

 1 <?php
 2 //演示PHP中输出语句
 3 //创建一个数组变量
 4 $test='Hello';
 5 $array = array("1"=>"a","2"=>"b",array('c','d','e'));
 6  
 7 echo "</br>使用echo()输出:".$test.$array."</br>";
 8 
 9 echo "</br>使用print()输出</br>";
10 print $test.$array;
11 
12 echo "</br>使用print_r()输出</br>";
13 print_r($test.$array);
14  
15 echo "</br>使用var_dump()输出</br>";
16 var_dump($test.$array);
17  
18 ?>

输出结果为:

使用echo()输出:HelloArray

使用print()输出
HelloArray
使用print_r()输出
HelloArray
使用var_dump()输出
string(10) "HelloArray"

4.assert()函数

assert()为断言函数,用来判断一个表达式是否成立。返回true or false;
例如<?php
$s = 123;
assert("is_int($s)");
?>

从这个例子可以看到字符串参数会被执行,这跟eval()类似。不过eval($code_str)只是执行符合php编码规范的$code_str。
assert的用法却更详细一点。

assert_option()可以用来对assert()进行一些约束和控制;
默认值
ASSERT_ACTIVE=1 //Assert函数的开关
ASSERT_WARNING =1 //当表达式为false时,是否要输出警告性的错误提示,issue a PHP warning for each failed assertion
ASSERT_BAIL= 0 //是否要中止运行;terminate execution on failed assertions
ASSERT_QUIET_EVAL= 0 //是否关闭错误提示,在执行表达式时;disable error_reporting during assertion expression evaluation
ASSERT_CALLBACK= (NULL) // 是否启动回调函数 user function to call on failed assertions

5.trim() 函数

用来移除字符串两侧的字符,一般用法:

<?php
$str = "Hello World!";
echo $str . "<br>";
echo trim($str,"Hed!");
?>
移除"Hello" 中的 "He" 以及 "World" 中的 "d!"

trim($str):移除字符串两侧的空格

    ltrim() - 移除字符串左侧的空白字符或其他预定义字符
    rtrim() - 移除字符串右侧的空白字符或其他预定义字符

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值