php 怎么截取字符前面几个字符

使用php 正则取出标签内的格式 后面一段是一样的,格式前面的名字是动态的 可能是英文 可能是中文。
需要取出"><span class="entity-icon sprite-list-ic b-in-blk b-ic-book"> 前面的格式
比如 取出的结果是 mp3 小数点不用。 只需要格式就可以。
大神们帮忙写个代码。谢谢

说的是我.mp3"><span class="entity-icon sprite-list-ic b-in-blk b-ic-book">
456saw.wma"><span class="entity-icon sprite-list-ic b-in-blk b-ic-book">
125都是的.mp4"><span class="entity-icon sprite-list-ic b-in-blk b-ic-book">

PHP 中的 substr() 函数可以实现

substr() 函数返回字符串的一部分。

substr(string,start,length)

其中参数的含义:
string 必需。规定要返回其中一部分的字符串。
start 必需。规定在字符串的何处开始。
正数 - 在字符串的指定位置开始
负数 - 在从字符串结尾的指定位置开始
0 - 在字符串中的第一个字符处开始
length 可选。规定要返回的字符串长度。默认是直到字符串的结尾。
正数 - 从 start 参数所在的位置返回
负数 - 从字符串末端返回

注释:如果 start 是负数且 length 小于等于 start,则 length 为 0。
例子1
<?php
echo substr("Hello world!",6);
?>

输出:

world!

例子2

<?php
echo substr("Hello world!",6,5);
?>

输出:

world
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-18
$a = '说的是我.mp3"><span class="entity-icon sprite-list-ic b-in-blk b-ic-book">';
// 不需要正则,将字符串以‘\.’分割,第二个元素就是包含音频文件后缀的字符串($b[1])。
$b = preg_split('/\./', $a);
//strpos确定后缀后面的双引号(“)的位置,下标即为需要截取的字符串长度,
//最后,substr得到的字符串即为你想要得到的音频文件后缀。
$c = substr($b[1], 0, strpos($b[1], '"'));
//var_dump($c);可得,”mp3“

这是基于你给出的字符串得出的结果,如果要求更具体些有可能会需要改动方法。
第2个回答  2013-07-18
substr($str, 2, 4);

$str:字符串变量
2:从第二个开始取
4:取四个值
第3个回答  推荐于2016-04-12
$a = '说的是我.mp3"><span class="entity-icon sprite-list-ic b-in-blk b-ic-book">';
$a = explode('.',$a);
preg_match("/(.*)\">/",$a[1],$met);

$met[1]就是你要的内容

本回答被提问者采纳
第4个回答  推荐于2018-02-23
$str = '说的是我.mp3"><span class="entity-icon sprite-list-ic b-in-blk b-ic-book">
456saw.wma"><span class="entity-icon sprite-list-ic b-in-blk b-ic-book">
125都是的.mp4"><span class="entity-icon sprite-list-ic b-in-blk b-ic-book">';
$re = '/(.+?)\.\w{3,4}\"><span\sclass=\"entity-icon\ssprite-list-ic\sb-in-blk\sb-ic-book/';
preg_match_all($re,$str,$arr);
$musicStr = implode(',',$arr[1]);
echo $musicStr;

本回答被网友采纳

php如何提取字符串前几位
php提取字符串前几位的方法:可以利用substr()函数来提取。该函数可以返回字符串中的提取部分,如果失败则返回false,或者返回一个空字符串,如【substr($str, 0, 3);】。substr() 函数返回字符串的提取部分,如果失败则返回 FALSE,或者返回一个空字符串。(推荐教程:php图文教程)语法:substr(strin...

PHP截取某个字符串前面的数字
编写一个PHP函数,专门用于提取字符串中某个字符前的所有数字。函数定义如下:function getNumbersBeforeChar($string, $char) { pattern = '\/(d+)(?=' . preg_quote($char) . ')\/';preg_match($pattern, $string, $matches);return isset($matches[1]) ? $matches[1] : '';} 举例说明...

怎么写PHP截取一个字符串里某个符号前面的字符串?
1、从第4个字符开始截取到字符串末尾,类似asp中的left:<?php $str = "www.icoa.cn"; echo substr($str,4); ?> 输出: icoa.cn 2、PHP substr函数从右边截取3个字符,类似asp中的right:<?php $str = "www.icoa.cn"; echo substr($str,-3); ?> 输出:.cn 3、PHP substr函数从第...

php如何得到一个字符串的前两个字符是什么
使用php原有的substr()函数就可以了。用法:设要截取的字符串是$str,则设截取到的结果是$substr 那么 substr=substr($str,2);这样子$substr 就是截取到的前两个字符了。

PHP中读取字符串前N个字符
PHP中读取字符串前N个字符的代码如下:str = "aaaaaaaaabbbbbbbbbbbbbbbb";echo substr($str , 0 , 5);echo mb_substr($str , 0 , 5); \/\/中文用 \/\/string mb_substr ( string $str , int $start [, int $length [, string $encoding ]] )PHP,是英文超文本预处理语言Hypertext ...

php 截取字符 前面两个字
建议用正则 str = '提问:你是谁啊?';if ( preg_match('\/^提问*\/i', $str ) ) {}

PHP中如何用正则表达式分离出某个关键词前后的文字?
str_arr = preg_split('|域名|',$str);这种简单的匹配不建议使用正则表达式,用php的explode()函数就可以了。str_arr = explode("域名",$str);具体取关键词左右的文字是什么意思,是取该关键字前100个字,和该关键字后100个字码。如果是这样那就要用substr来截取一下了。注意要考虑汉字与字符的...

php正则匹配如何截取前200个字符,跪求大神解答
逐个分析你的表达式,首先(.{0,200})表示匹配除"\\n"外的0到200个字符,而^表示以(.{0,200})开头,而后面的.*表示0个或多个单个字符,而.*?结合起来则表示使用懒惰模式,匹配任意数量的重复个字符,\/i表示去区分大小写,使用你的$pattern应该可以达到效果,同样使用preg_match语法的话,...

php正则匹配如何截取前200个字符,跪求大神解答
print_r($matches);效果如下图:我看了你的$pattern,即\/^(.{0,200}).*?$\/i首先你使用了^...$这个结构表示精确匹配某个字符串,逐个分析你的表达式,首先(.{0,200})表示匹配除"\\n"外的0到200个字符,而^表示以(.{0,200})开头,而后面的.*表示0个或多个单个字符,而.*?结合起来则...

php如何截取逗号之前的字符
答案1:用正则-》Regex = '#([^,]+)#is';preg_match($Regex,$foo,$result);echo $result[1]; \/\/输出结果:aaaaaa答案2:用分割字符串-》foo = explode(',',$foo);echo $foo[0]; \/\/输出结果:aaaaaa答案3:用寻找和截取字符串-》echo substr($foo,0,$index); \/\/输出结果:...

相似回答