当前位置:首页 » 编程语言 » php文字截取

php文字截取

发布时间: 2023-02-03 18:31:21

A. 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."
";
?>

B. php的字符串截取问题

你是要获取【和】之间的内容,不管是什么都没关系,只要不是这两个符号,对吧,这可以使用正则表达式,也可以使用substr和strpos来实现,下面是正则表达式的例子:
<?php
$s='<div
class="container"><div
id="container"><p>
【此中为要被截取的部分】</p></div>';
if
(preg_match('#【(.*?)】#s',$s,$reg))
echo
$reg[1];
?>
补充:
我觉得你是不是要获取<p>和</p>之间的内容呀,也不说清楚,那就应该是下面的代码:
<?php
$s='<div
class="container"><div
id="container"><p>
【此中为要被截取的部分】</p></div>';
if
(preg_match('#<div
id="container"><p>(.*?)</p></div>#s',$s,$reg))
echo
$reg[1];
?>

C. php截取字符

$str='123:123123';
$arr=explode(':',$str);
echo $arr[0]."<br>";
echo $arr[1]."<br>";

explode是把一个字符串分割成一个数组

php手册:
array explode ( string separator, string string [, int limit] )

此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串 separator 作为边界点分割出来。如果设置了 limit 参数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。

如果 separator 为空字符串(""),explode() 将返回 FALSE。如果 separator 所包含的值在 string 中找不到,那么 explode() 将返回包含 string 单个元素的数组。

如果 limit 参数是负数,则返回除了最后的 limit 个元素外的所有元素。此特性是 PHP 5.1.0 中新增的。

D. 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)不会显示出什么,但是他是一个字符。

E. 如何利用PHP来截取一段中文字符串而不出现乱码

/*
功能:截取全角和半角混合的字符串以避免乱码
参数:
$str_cut 需要截断的字符串
$length允许字符串显示的最大长度

*/

functionsubstr_cut($str_cut,$length=30){

if(strlen($str_cut)>;$length){
for($i=0;$i<$length;$i++)
if(ord($str_cut[$i])>;128) $i++;
$str_cut=substr($str_cut,0,$i)."...";
}
return$str_cut;
}

说明:
程序的关键语句是:

for($i=0;$i<$length;$i++)
if(ord($str_cut[$i])>;128) $i++;

$str_cut=substr($str_cut,0,$i)."...";
如果字符的ASCII码大于128,说明当前字符和下一个字符是属于一个汉字的。
则,$i++跳过对下一个字符的判断。
再结合循环中的$i++,实际上,当遇到一个汉字时,$i就会加2,从而正确的跳过汉字。
最终实现的效果是,$i变量指向的要么是半角的字符,要么是全角汉字的首字符,不会指向
全角汉字的第二个字符,所以,当$i>;=$length时,循环结束,使用
$str_cut=substr($str_cut,0,$i)."...";截取字符时自然也就不会出现乱码了。


本人在写一个程序时需要利用PHP从一段字符串中截取指定长度的一段字符下来。以前在写ASP的时候,参考动网的程序写过类似的程序,不过,还没用PHP写过。

想偷懒,看有不有现成的代码可以用。于是,在GOOGLE中输入:PHP截断字符后查找到一段代码。

F. PHP如何截取指定两个字符串之间的文字

$str='<h1 style="margin:0px">USB PC Joystick Game Controller</h1>';
preg_match_all('/<h1[^>]*>(.*)<\/h1>/',$str,$match);
print_r($match[1][0]);

G. php 怎么截取汉字字符串

?php 
$str = '这样一来我的字符串就不会有乱码^_^'; 
echo "mb_substr:" . mb_substr($str, 0, 7, 'utf-8'); 
//结果:这样一来我的字 
echo "
"; 
echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8'); 
//结果:这样 
?
首先
1.确保你的Windows/system32下有php_mbstring.dll这个文件,没有就从你Php安装目录extensions里拷入Windows/system32里面。
2.在windows目录下找到php.ini打开编辑,搜索mbstring.dll,找到
;extension=php_mbstring.dll把前面的;号去掉,这样mb_substr函数就可以生效了
mb_strcut函数功能也可以截取字符串长度,下面实例具体看看区别在哪:
mb_substr();

H. 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;
}
}
直接调用这个函数就可以了。

I. php怎么截取指定字符串之间的字符串

在php中只要判断字符串1与字符串2之前的一个stripos位置然后再使用substr开始截取就可以了,这里给大家介绍一个简单的方法,
你可以多去后盾人平台看教学视频,这样才会更加清晰易懂,因为文字比较难叙述。

J. php要截取一段汉语文字,怎样才能保证不把汉字拆开

还得看你的编码是gbk的还是UTF8的。

以下是UTF-8的编码下的截取
function smarty_modifier_truncate_utf8($string, $length, $etc = '...')
{
$result = '';

$string = html_entity_decode(trim(strip_tags($string)), ENT_QUOTES, 'UTF-8');

$strlen = strlen($string);

for($i = 0; (($i < $strlen) && ($length > 0)); $i++)
{
if($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, '0', STR_PAD_LEFT), '0'))
{
if($length < 1.0)
{
break;
}

$result .= substr($string, $i, $number);

$length -= 1.0;

$i += $number - 1;
}
else
{
$result .= substr($string, $i, 1);

$length -= 0.5;
}
}

$result = htmlspecialchars($result, ENT_QUOTES, 'UTF-8');

if($i < $strlen)
{
$result .= $etc;
}

return $result;
}

以下是GBK编码下的截取(常用)

function gbk_strlen($string)
{
if(extension_loaded('mbstring'))
{
mb_internal_encoding('GBK');

return mb_strlen($string);
}
else
{
preg_match_all('/[\x81-\xfe]?./', $string, $match);

return count($match[0]);
}
}

function gbk_substr($string, $start, $length = null)
{
if(extension_loaded('mbstring'))
{
mb_internal_encoding('GBK');

if(is_null($length))
{
return mb_substr($string, $start);
}
else
{
return mb_substr($string, $start, $length);
}
}
else
{
preg_match_all('/[\x81-\xfe]?./', $string, $match);

if(is_null($length))
{
return implode('', array_slice($match[0], $start));
}
else
{
return implode('', array_slice($match[0], $start, $length));
}
}
}
function smarty_modifier_truncate_gbk($string, $length = 80, $etc = '...',
$break_words = false, $middle = false)
{
if ($length == 0)
return '';

if (gbk_strlen($string) > $length) {
$length -= gbk_strlen($etc);
if (!$break_words && !$middle) {
$string = preg_replace('/\s+?(\S+)?$/', '', gbk_substr($string, 0, $length+1));
}
if(!$middle) {
return gbk_substr($string, 0, $length).$etc;
} else {
return gbk_substr($string, 0, $length/2) . $etc . gbk_substr($string, -$length/2);
}
} else {
return $string;
}
}

热点内容
怎么给自己手机写一个脚本 发布:2024-11-01 20:23:41 浏览:241
c语言大小写判断 发布:2024-11-01 20:21:53 浏览:130
php的点餐系统源码 发布:2024-11-01 20:13:53 浏览:714
拜占庭算法 发布:2024-11-01 20:10:31 浏览:357
xcode编译参数 发布:2024-11-01 20:00:04 浏览:665
苹果5怎么设置密码锁屏 发布:2024-11-01 19:54:55 浏览:124
宝塔上传文件夹 发布:2024-11-01 19:39:50 浏览:257
java云编译器 发布:2024-11-01 19:34:24 浏览:385
免费源码分享网 发布:2024-11-01 19:29:19 浏览:855
硬盘8mb缓存 发布:2024-11-01 19:20:02 浏览:192