php截取
1. 急求 php 从指定字符串截取
<?php
$string='abc-def-bbdsfdsfdsfsdf';
$strat=strrpos($string,'-');
echosubstr($string,$strat+1);
?>
strrpos() 函数查找字符串在另一个字符串中最后一次出现的位置.
2. 实现php截取部分文章
实际上PHP核心是把所有的文本都安ASIIC来看待的,GBK编码下一个中文字符是2个字节,所以substr时候有可能截取办个中文字符例如stbstr("a中", 0, 2)就把“中”截断了。
mb_string有的服务器没有编译进去。
下边有一个截取中文字符的函数,要求是GBK编码的。
$str是字符串,$strlen是要截取的长度,一个中文算两个字符。
用这个函数就不会出现乱码了
<?php
/* 截取一定长度的完整的中文字符 */
function cnsubstr($str,$strlen=10) {
if(empty($str)||!is_numeric($strlen)){
return false;
}
if(strlen($str)<=$strlen){
return $str;
}
//得到第$length个字符 并判断是否为非中文 若为非中文
//直接返回$length长的字符串
$last_word_needed=substr($str,$strlen-1,1);
if(!ord($last_word_needed)>128){
$needed_sub_sentence=substr($str,0,$strlen);
return $needed_sub_sentence;
}else{
for($i=0;$i<$strlen;$i++){
if(ord($str[$i])>128){
$i++;
}
}//end of for
$needed_sub_sentence=substr($str,0,$i);
return $needed_sub_sentence;
}
}
3. php里如何截取某一段内容(再问)
<?
function open($file,$type=''){
if($open=file($file)){
$count=count($open);
for($i=0;$i<$count;$i++){
$theget.=$open[$i];
}
}else{
die('请求过多,超时,请刷新');
}
return $theget;
}
$_str = open("http://cache.tianya.cn/publicforum/Content/culture/1/229132.shtml");
//echo $_str;
/**
变量说明:
$str 要进行操作的字符串;
$split 拆分目标字符(串);
$from_no 从第几个开始;
$desc_y_n 顺取(〉0的值)还是倒取(0);
*/
//$_str = "aaa .1..aaa.2..aaa .3..aaa.4..aaa.5..bbb..7.bbb.8..bbb.9..bbb.10..bbb";
$split_a = "<!--结束添加时尚频道的链接-->";
$split_b = "<TABLE cellspacing=0";
$str_b = strstr($_str,$split_b);//寻找$split_b第一次出现的位置
$str_a = substr($_str,0,strpos($_str, $split_b));//可以取得字符串的指定长度子字符串
function _getStr_from_to($str,$split,$from_no,$desc_y_n)
{
$arr = explode($split,$str);
$size = sizeof($arr);
$from_no = ($from_no<=$size) ? $from_no : $size;
unset($_tmp_out_str);
if($desc_y_n)
{
//正序
for($i=$from_no;$i<$size;$i++)
{
$_tmp_out_str .= $split.$arr[$i];
}
}
else
{
$_tmp_from = $size - $from_no;
for($i=0;$i<$_tmp_from;$i++)
{
$_tmp_out_str .= $arr[$i].$split;
}
}
return $_tmp_out_str;
}
$_the_out_str['a'] = _getStr_from_to($str_a,"<!--结束添加时尚频道的链接-->",1,1);
$_the_out_str['b'] = _getStr_from_to($str_b,"<TABLE cellspacing=0",1,1);
echo $_the_out_str['a'].$_the_out_str['b'];
?>
4. php截取字符串方法
可以使用substr或者mb_substr截取字符串
5. php怎么截取字符串
使用正则表达式,preg_match('#<a href=(.*)>cctv在线直播</a>#i')
6. PHP字符串截取
请看下面的示例!
php
//构造字符串
$str="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
echo"原字符串:".$str."
";
//按各种方式进行截取
$str1=substr($str,5);
echo"从第5个字符开始取至最后:".$str1."
";
$str2=substr($str,9,4);
echo"从第9个字符开始取4个字符:".$str2."
";
$str3=substr($str,-5);
echo"取倒数5个字符:".$str3."
";
$str4=substr($str,-8,4);
echo"从倒数第8个字符开始向后取4个字符:".$str4."
";
$str5=substr($str,-8,-2);
echo"从倒数第8个字符开始取到倒数第2个字符为止:".$str5."
";
?>
7. 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 参数所在的位置返回负数 - 从字符串末端返回。
8. php字符截取
当汉字被截断时,根据编码规则他总是要把后边的其他字符拉过来一起作为汉字解释,这就是出现乱码的原因。而值为0x81到0xff与0x00组合始终都显示为“空”
根据这一特点,在substr的结果后面补上一个chr(0),就可以防止出现乱码了
先看段代码
复制代码
代码如下:
<?php
$len
=
15;
$str
=
"这个新闻或是文章的标题很长,需要只显示前面一些字,后面用...来代替";
echo
strlen($str)<=$len
?
$str
:
(substr($str,0,$len).chr(0)."...");
?>
chr(0)相关知识:
null是什么都没有,而chr(0)的值是0。表示成16进制是0x00,表示成二进制是00000000
虽然chr(0)不会显示出什么,但是他是一个字符。
9. php截取字符串函数
$str=implode("|",$arr);
echo $str;
input:
小明|小黑|小天|小白
10. php截取字符串
这个问题我回答了好几个了:
/* 截取一定长度的完整的中文字符 */
function cnsubstr($str,$strlen=10) {
if(empty($str)||!is_numeric($strlen)){
return false;
}
if(strlen($str)<=$strlen){
return $str;
}
//得到第$length个字符 并判断是否为非中文 若为非中文
//直接返回$length长的字符串
$last_word_needed=substr($str,$strlen-1,1);
if(!ord($last_word_needed)>128){
$needed_sub_sentence=substr($str,0,$strlen);
return $needed_sub_sentence;
}else{
for($i=0;$i<$strlen;$i++){
if(ord($str[$i])>128){
$i++;
}
}//end of for
$needed_sub_sentence=substr($str,0,$i);
return $needed_sub_sentence;
}
}
直接调用这个函数就可以了。