字符截取php
❶ php 如何截取字符串最后两个字符
在php中只要判断字符串1与字符串2之前的一个stripos位置然后再使用substr开始截取就可以了,介绍一个简单例子。
使用方法:
1 2 $keyword='查找(计组实验)' $need=getNeedBetween($keyword, '(' , ')' );
运行该程序之后:
1 $need='计组实验';
下面就来完成上面用到的字符串截取函数。getNeedBetween。该函数可实现简单的从字符串($kw)截取两个指定的字符($mark1,$mark2)之间字符串,失败返回0,成功返回截取的字符串。
1 2 3 4 5 6 7 8 9 10 11 12 <?php function getNeedBetween($kw1,$mark1,$mark2){ $kw=$kw1; $kw='123′.$kw.'123′; $st =stripos($kw,$mark1); $ed =stripos($kw,$mark2); if(($st==false||$ed==false)||$st>=$ed) return 0; $kw=substr($kw,($st+1),($ed-$st-1)); return $kw; } ?>
❷ php正则截取指定符号之间的字符串
按照你的要求截取第一个【和最后一个】之间的字符串的php程序如下
(用正则表达式中的贪婪匹配模式,取第一捕获组的数据)
<?php
$str="击链器【到手】得理多】";
$regex="/【(.*)】/";
preg_match_all($regex,$str,$result);
echo $result[1][0];
?>
❸ php,根据第一次出现的字符串截取,获取后面部分的字符串
echosubstr($str,(stripos($str,"市")+3))。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。
两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
(3)字符截取php扩展阅读:
串接子串:
“串接”是 Σ* 上的重要二元运算。对于 Σ* 中的两个字符串 s 和 t,它们的串接被定义为在 s 中的字符序列之后跟随着 t 中的字符序列,并被指示为 st。例如,Σ = {a, b, …, z},并且 s = bear 且 t = hug,则 st = bearhug 而 ts = hugbear。
字符串串接是结合性的,但非交换性运算。空串充当单位;对于任何字符串 s,有 εs = sε = s。所以,集合 Σ* 和串接运算形成了幺半群,就是从 Σ 生成的自由幺半群。此外,长度函数定义从 Σ* 到非负整数的幺半群同态。
❹ PHP怎么用substr函数截取字符串中的某部分
1、从第4个字符开始截取到字符串末尾,类祥猜似asp中的left:
输出: lacecake.com
2、PHP substr函数从右边瞎纤截取3个字符,类似asp中的right:
输出:.com
3、PHP substr函数从第4个字符开始截取3个字符:
输出:lac
4、有时我们知道一个字符串的开始和结尾,中间是不定长的字符,这时除了用PHP substr函数的正则外我们还可以用substr实现(当然要得到中间的字符方法有N种,在此只是举例substr的应用):
本例磨宴仿去掉开头4个字符和结尾3个字符,输出中间的字符串:
输出:lacecake.
❺ php截取字符串之截取utf8或gbk编码的中英文字符串示例
php中自带strlen是返回的字节数,对于utf8编码的中文返回时3个,不满足需求,下面给大家提供一个方法来完成这样的功能
微博的发言有字数限制,其计数方式是,中文算2个,英文算1个,全角字符算2个,半角字符算1个。
php中自带strlen是返回的字节数,对于utf8编码的中文返回时3个,不满足需求。
mb_strlen
可以根据字符集计算长度,比如utf8的中文计数为1,但这不符合微博字数限制需求,中文必须计算为2才可以。
google了下,找到一个discuz中截取各种编码字符的类,改造了下,已经测试通过.其中参数$charset
只支持gbk与utf-8。
代码如下:
$a
=
"s@@你好";
var_mp(strlen_weibo($a,'utf-8'));
结果输出为8,其中字母s计数为1,全角@计数为2,半角@计数为1,两个中文计数为4。源码如下:
代码如下:
function
strlen_weibo($string,
$charset='utf-8')
{
$n
=
$count
=
0;
$length
=
strlen($string);
if
(strtolower($charset)
==
'utf-8')
{
while
($n
<
$length)
{
$currentByte
=
ord($string[$n]);
if
($currentByte
==
9
||
$currentByte
==
10
||
(32
<=
$currentByte
&&
$currentByte
<=
126))
{
$n++;
$count++;
}
elseif
(194
<=
$currentByte
&&
$currentByte
<=
223)
{
$n
+=
2;
$count
+=
2;
}
elseif
(224
<=
$currentByte
&&
$currentByte
<=
239)
{
$n
+=
3;
$count
+=
2;
}
elseif
(240
<=
$currentByte
&&
$currentByte
<=
247)
{
$n
+=
4;
$count
+=
2;
}
elseif
(248
<=
$currentByte
&&
$currentByte
<=
251)
{
$n
+=
5;
$count
+=
2;
}
elseif
($currentByte
==
252
||
$currentByte
==
253)
{
$n
+=
6;
$count
+=
2;
}
else
{
$n++;
$count++;
}
if
($count
>=
$length)
{
break;
}
}
return
$count;
}
else
{
for
($i
=
0;
$i
<
$length;
$i++)
{
if
(ord($string[$i])
>
127)
{
$i++;
$count++;
}
$count++;
}
return
$count;
}
}
❻ php怎么截取字符后面几个字符
$str1 = substr($str,5)截取后面5个字符。
1:$str1 = substr($str,5);这句是从第5个字符开始截取到最后strlen($str) 这句是获取字符串长度假设你要截取后面3个字符,那就这样写 $str1 = substr($str,(strlen($str)-3))。
2:只要判断字符串1与字符串2之前的一个stripos位置然后再使用substr开始截取就可以了。
3:PHP中的substr() 函数可以实现 substr() 函数返回字符串的一部分,substr(string,start,length)。
4:string 必需,规定要返回其中一部分的字符串,start 必需,规定在字符串的何处开始,正数 - 在字符串的指定位置开始 负数 - 在从字符串结尾的指定位置开始 0 - 在字符串中的第一个字符处开始 length 可选,规定要返回的字符串长度。默认是直到字符串的结尾,正数 - 从 start 参数所在的位置返回负数 - 从字符串末端返回。