PHP函数处理字符串大全

1.字符串截断

<?php
//指定要去除的字符串
$string = "##sdfjk#ljs";
$str = trim($string,'#');
echo $str;
<?php
$string = "  asjdh\n";
$string = trim($string);
$string2 = "djak";
echo $string . $string2;

trim。函数可以除去字符串开始位置和结束位置的空格,并将结果字符串返回。在默认 情况下,除去的字符是换行符和回车符(\n和\r)、水平和垂直制表符(\t和\xOB)、字符串 结束符(\0)和空格。除了这个默认的过滤字符列表外,也可以在该函数的第二个参数中提 供要过滤的特殊字符列表,用来替代默认列表

ltrim()只从字符串的开始处(左边)除去空格,rtrim()只从字符 串的结束处(右边)除去空格。

2.格式化字符串以便输出

目的:如果要将用户输入回显至浏览器,我们不希望用户输入的类容被浏览器解释,这样会造成漏洞

htmlspecialchars()函数过滤输出至浏览器的字符串

string htmlspecialchars (string string [, int flags = ENT_COMPAT | ENT_HTML401

[,string encoding = 'UTF-8' [, bool double_encode = true ]]])

a .该函数的第一个参数是要被翻译的字符串,而函数返回值是翻译后的字符串。注意: 如果输入字符串不能满足特定编码格式,该函数将返回一个空字符串,而不会抛岀任何错 误。这种行为是为了避免代码注入问题。

b. flags,指定了如何完成翻译。你可以使用位掩码来表示可能的组 合值。正如在函数原型看到的,默认值是ENT_COMPAT|ENT_HTML40

c. encoding,指定了转换的编码方式。从PHP 5.4开始,默认编码是 UTF-8O在此之前版本,默认编码是ISO-8859-1

d. double_encode,指定了是否需要对HTML实体进行编码。默认值 是执行编码。

<?php
$string = "\"<p>asjkd\"";//在浏览器中还是会显示"<p>asjkd,但是浏览器解释的时候是&quot;&lt;p&gt;asjkd&quot;
$string = htmlspecialchars($string);
echo $string;

3.使用HTML格式化:nl2br()

<?php
$string = "<p>asdhj   asjkd\n   asjk</p>";
echo nl2br(htmlspecialchars($string));//\n会被解释成<br/>,以便在浏览器页面换行
//先去除HTML字符
echo $string;

4.改变字符串中字母的大小写:

函 数描 述使 用返回值
  SsubjectFeedback from web site
strtoupper()将字符串转换为大写strtoupper($subject)FEEDBACK FROM WEB SITE
strtolower()将字符串转换成小写strtolower($subject)feedback from web site
ucfirst()如果参数的第一个字符是字母, 将其转换成大写字母ucfirst($subject)Feedback from web site
ucwords()将字符串中以字母为开始的每个 单词的第一个字符转换成大写字母ucwords($subject)Feedback From Web Site

5.字符串连接和分割

1.explode():

array explode(string separator, string input [, int limit]);

<?php
$string = 'ajsWdh@sdkfj';
$email = explode('@',$string);
echo $email[0] . "   " .$email[1];
//explode:将$string在@的地方分割为两个字符串

2.implode 和 join

<?php
//implode函数将数组用第一个函数连接起来
$arr = ["dd","asdi"];
$arr = implode(',',$arr);
echo $arr;
​

76页开始写博客

6.strtok()

//strtok()函数
$string = 'abcabcacb';
$token = strtok($string,'a');//重置指针strtok本身就有一个函数
while ($token!="")
{
    echo $token . PHP_EOL;
    $token = strtok('a');
}

7.

3.字符串的替换

1.substr()

substr()函数原型如下所示:

string substr(string string, int start[, int length]);

函数substr()允许我们访问一个字符串给定起点和终点的子字符串。这个函数并不适用 于我们的示例,但是,当需要得到某个固定格式字符串中的一部分时,它会非常有用。

$string = 'abc def ghij klmn';
$str1 = substr($string,1,3);
$str2 = substr($string,1,-2);
echo $str1 . PHP_EOL .$str2;
//结果:bc
//bc def ghij kl

2.str_replace()和substr_replace()(原字符串没有变,改变的是返回值)

$string = "asdfghjaskj";
$string = str_replace("as",'1234',$string);
echo $string . PHP_EOL;//用1234替换掉¥string中的as
$string = "asdfghjaskj";
$string = substr_replace($string,'1234',1,4);
echo $string;

4.字符串比较

1.比较

$str1 = 'bcc';
$str2 = 'bdc';
if(strcmp($str1,$str2))
{
    echo strcmp($str1,$str2);
}
if(strcasecmp($str1,$str2))
{
    echo strcasecmp($str1,$str2);
}
//str1大于str2,返回1,相等返回0,否则返回-1
//strcasecmp不区分大小写
//if语句只要条件不为0,都为满足条件
​

 

strlen()返回字符串长度

2.比较查找

strstr()的函数原型如下所示:

string strstr(string haystack, string needle[, bool before_needle=false]);

你必须向该函数传递一个要被搜索的字符串参数haystack和一个目标关键字字符串参 数。如果找到了目标关键字的一个精确匹配,函数会从目标关键字前面返回被搜索的字符

$string  = "asdfg";
if(strstr($string,'as'))
{
    echo "find";
}
if(strstr($string,'asdfsss'))
{
    echo "find2";
}//为真返回字符串,为假返回NULL
//stristr不区分大小写
if(1)//只有为0或者NULL或者false才为假
{
    $m = strstr($string,'as');
    echo "<p> $m";
}

2.查找子字符串的位置

strpos()函数原型如下所示:

int strpos(string haystack, string needle[**t** int offset=0]);

该函数返回的整数代表被搜索字符串中第一次出现目标关键字子字符串的位置。通常, 第一个字符是位置O

$string  = "asdssfgss";
if(strpos($string,'s',3))
{
    echo "find";
    echo strrpos($string,'s',3);//返回最后一次字符串出现的位置
    //offset可选,从offset位置开始查找
}

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

安全天天学

你的鼓励是对我最大的鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值