取字符串,php 截取中文字符串
function MooCutstr($string, $length, $dot = ' ...') {
global $charset;
if(strlen($string) <= $length) {
return $string;
}
$string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string);
$strcut = '';
if(strtolower($charset) == 'utf-8') {
$n = $tn = $noc = 0;
while($n < strlen($string)) {
$t = ord($string[$n]);
if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
$tn = 1; $n++; $noc++;
} elseif (194 <= $t && $t <= 223) {
$tn = 2; $n += 2; $noc += 2;
} elseif (224 <= $t && $t < 239) {
$tn = 3; $n += 3; $noc += 2;
} elseif (240 <= $t && $t <= 247) {
$tn = 4; $n += 4; $noc += 2;
} elseif (248 <= $t && $t <= 251) {
$tn = 5; $n += 5; $noc += 2;
} elseif ($t == 252 || $t == 253) {
$tn = 6; $n += 6; $noc += 2;
} else {
$n++;
}
if($noc >= $length) {
break;
}
}
if($noc > $length) {
$n -= $tn;
}
$strcut = substr($string, 0, $n);
} else {
for($i = 0; $i < $length; $i++) {
$strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
}
}
$strcut = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $strcut);
return $strcut.$dot;
}
DedeCMS采集规则-过滤-替换-技巧2009-01-14 15:491.采集去除链接
[Copy to clipboard]CODE:
{dede:trim}]*)>([^<]*){/dede:trim}
--------------------------------
让field:title 标题突破30这个长度,修改代码的方法
找到./include/inc_arcpart_view.php
行291 :
if($titlelen=="") $titlelen = 30;
修改为
if($titlelen=="") $titlelen = 60;
就可以了,然后,你可以这样调用了
{dede:channelArtlist typeid='0' col=1 tablewidth='100%'}
{dede:arclist row="10"}
[field:title function="cn_substr('@me',38)" /]
{/dede:arclist}
{/dede:channelArtlist}
把这个延伸一下:关于inc_arcpart_view.php
function GetArcList($typeid=0,$row=10,$col=1,$titlelen=30,$infolen=160,
$imgwidth=120,$imgheight=90,$listtype="all",$orderby="default",$keyword="",
$innertext="",$tablewidth="100",$arcid=0,$idlist="")
这里的参数都可以更改你实际需要的模板元素尺寸大小.
2. 采集过虑中去掉链接保留文字的方法!
柏老大的方法是{dede:trim}<a ([^>]*)>([^<]*)</a>{/dede:trim}
这样做会去掉<a hf.......>与</a>之间的字符!这样整个文章就少了部分字符,不完整了!
后来我多次测试,总算找到了正确的使用方法!如下:
{dede:trim}<a([^>]*)>{/dede:trim}
{dede:trim}</a>{/dede:trim}
做成两条采集规则就可以了!
在实际使用中好像([^<]*)([^>]*)两条一起使用才行!
3. 过滤div
{dede:trim}]*)>{/dede:trim}
{dede:trim}
{/dede:trim}
过滤js
{dede:trim}]*)>([^<]*){/dede:trim}
过滤未知变量字符
固定(.*)固定
4.dede万能过滤代码
以下是常用的正则表达式标签
{dede:trim}<tbody(.*)>{/dede:trim}
{dede:trim}</tbody>{/dede:trim}
{dede:trim}<table(.*)>{/dede:trim}
{dede:trim}</table>{/dede:trim}
{dede:trim}<tr(.*)>{/dede:trim}
{dede:trim}</tr>{/dede:trim}
{dede:trim}<td(.*)>{/dede:trim}
{dede:trim}</td>{/dede:trim}
{dede:trim}<font(.*)>{/dede:trim}
{dede:trim}</font>{/dede:trim}
{dede:trim}<a(.*)>{/dede:trim}
{dede:trim}</a>{/dede:trim}
{dede:trim}<param(.*)>{/dede:trim}
{dede:trim}<embed(.*)</embed>{/dede:trim}
{dede:trim}<object(.*)</object>{/dede:trim}
{dede:trim}<iframe(.*)</iframe>{/dede:trim}
{dede:trim}<form(.*)</form>{/dede:trim}
{dede:trim}<input(.*)>{/dede:trim}
{dede:trim}<scrīpt(.*)</scrīpt>{/dede:trim}
{dede:trim}<style(.*)</style>{/dede:trim}
{dede:trim}<!--(.*)-->{/dede:trim}
以下为不常用的正则表达式标签
{dede:trim}<div(.*)>{/dede:trim}
{dede:trim}</div>{/dede:trim}
{dede:trim}<center(.*)>{/dede:trim}
{dede:trim}</center>{/dede:trim}
{dede:trim}<p(.*)>{/dede:trim}
{dede:trim}</p>{/dede:trim}
{dede:trim}<span(.*)>{dede:trim}
{dede:trim}</span>{dede:trim}
{dede:trim}<img(.*)>{/dede:trim}
/////////////////////////////////////
5.织梦标题不全,鼠标指向显示全部的代码:
{dede:arclist titlelen='100'}
[field:title function=' ( strlen("@me")>40 ? cn_substr("@me",40): "@me" ) '/]
{/dede:arclist}
6.dede/inc/inc_archives_functions.php第100行(flash频道远程flash本地化的BUG)
$cfg_uploaddir = $GLOBALS['media_dir'];
修改成
$cfg_uploaddir = $GLOBALS['cfg_other_medias'];
6.发布时间,来源,作者可以通过@me函数实现,如:在自定义处理接口:处输入 @me = "Azure·【博】" 就表示来源为“Azure·【博】”
7.内容的替换:在所采集的文章内容中有多媒体,使用的是相对路径,采集的时候又不想下载,最好的办法就是将地址替换成媒体的实际地址。可以这样实现,在文章内容规则部分的自定义处理接口:处输入@me=str_replace('src="str1','src="str2',@me);
dedecms 带超连接关键字 如何去掉
全部去
{dede:trim}^<a*'>*</a>${/dede:trim}
function multi($total, $perPage, $curPage, $pageUrl, $maxPages = 0, $page = 10, $autoGoTo = TRUE, $simple = FALSE) {
$multiPage = '';
$pageUrl .= strpos($pageUrl, '?') ? '&' : '?';
$realPages = 1;
if($total > $perPage) {
$offset = 2;
$realPages = @ceil($total / $perPage);
$pages = $maxPages && $maxPages < $realPages ? $maxPages : $realPages;
if($page > $pages) {
$from = 1;
$to = $pages;
} else {
$from = $curPage - $offset;
$to = $from + $page - 1;
if($from < 1) {
$to = $curPage + 1 - $from;
$from = 1;
if($to - $from < $page) {
$to = $page;
}
} elseif ($to > $pages) {
$from = $pages - $page + 1;
$to = $pages;
}
}
$multiPage = ($curPage - $offset > 1 && $pages > $page ? '<a href="'.$pageUrl.'page=1" class="first"'.$ajaxtarget.'>1 ...</a>' : '').
($curPage > 1 && !$simple ? '<a href="'.$pageUrl.'page='.($curPage - 1).'" class="prev"'.$ajaxtarget.'>‹‹</a>' : '');
for($i = $from; $i <= $to; $i++) {
$multiPage .= $i == $curPage ? '<strong>'.$i.'</strong>' :
'<a href="'.$pageUrl.'page='.$i.($ajaxtarget && $i == $pages && $autoGoTo ? '#' : '').'"'.$ajaxtarget.'>'.$i.'</a>';
}
$multiPage .= ($curPage < $pages && !$simple ? '<a href="'.$pageUrl.'page='.($curPage + 1).'" class="next"'.$ajaxtarget.'>››</a>' : '').
($to < $pages ? '<a href="'.$pageUrl.'page='.$pages.'" class="last"'.$ajaxtarget.'>... '.$realPages.'</a>' : '').
(!$simple && $pages > $page && !$ajaxtarget ? '<kbd><input type="text" name="custompage" size="3" onkeydown="if(event.keyCode==13) {window.location=''.$pageUrl.'page='+this.value; return false;}" /></kbd>' : '');
$multiPage = $multiPage ? '<div class="pages">'.(!$simple ? '<em> '.$total.' </em>' : '').$multiPage.'</div>' : '';
}
$maxpage = $realPages;
return $multiPage;
}
function dhtmlspecialchars($string) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = dhtmlspecialchars($val);
}
} else {
$string = preg_replace('/&((#(d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\1',
str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string));
}
return $string;
}
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$lianjie = mysql_connect("localhost","root","xiaolie") or die("连接失败");
mysql_query("set names utf8");
if($lianjie)
{
mysql_select_db("xiaolie");
if(!@$_GET["id"])
{
$jieguo = "select * from zhuce";
$fasong = mysql_query($jieguo) or die(mysql_error());
echo "<table border=1>
<tr>
<td>编号</td>
<td>用户名称</td>
<td>性别</td>
<td>年龄</td>
<td>注册时间</td>
<td>详细信息</td>
</tr>";
while($nr=mysql_fetch_array($fasong))
{
echo "<tr>
<td>".$nr["id"]."</td>
<td>".$nr["name"]."</td>
<td>".$nr["xingbie"]."</td>
<td>".$nr["nianling"]."</td>
<td>".$nr["zc_shijian"]."</td>
<td><a href=ck_my.php?id=".$nr["id"].">查看</a></td>
</tr>";
}
echo "</table>";
}
else
{
$jieguo = "select * from zhuce where id=".$_GET["id"];
$fasong = mysql_query($jieguo);
$nr = mysql_fetch_array($fasong);
echo "编号:".$nr["id"]."<br>用户名称:".$nr["name"]."<br>性别:".$nr["xingbie"]."<br>年龄:".$nr["nianling"]."<br>注册时间:".$nr["zc_shijian"]."<br>";
echo "<br><br><a href=ck_my.php>继续查询</a>";
}
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$lianjie = mysql_connect("localhost","root","xiaolie") or die("连接失败");
mysql_query("set names utf8");
if($lianjie)
{
mysql_select_db("xiaolie");
if(!$_GET)
{
$xuanbiao = "select * from zhuce";
$fasong = mysql_query($xuanbiao) or die(mysql_error());
echo "<table border=1>
<tr>
<td>编号</td>
<td>用户名称</td>
<td>性别</td>
<td>年龄</td>
<td>注册时间</td>
<td>操作</td>
</tr>";
while($nr=mysql_fetch_array($fasong))
{
echo "<tr>
<td>".$nr["id"]."</td>
<td>".$nr["name"]."</td>
<td>".$nr["xingbie"]."</td>
<td>".$nr["nianling"]."</td>
<td>".$nr["zc_shijian"]."</td>
<td><a href=gx_my.php?id=".$nr["id"].">编辑</a></td>
</tr>";
}
echo "</table>";
}
else
{
if(!$_POST)
{
$xianid = "select * from zhuce where id=".$_GET["id"];
$fasong = mysql_query($xianid) or die(mysql_error());
$nr = mysql_fetch_array($fasong);
?>
<form method=post action="gx_my.php?id=<?php echo $_GET["id"];?>">
<?php
echo $nr["id"]."<br>";
?>
<input type="hidden" name="id" value=<?php echo $nr["id"];?>>
姓名<input type="text" name="name" value=<?php echo $nr["name"];?>><br>
性别<input type="text" name="xingbie" value=<?php echo $nr["xingbie"];?>><br>
年龄<input type="text" name="nianling" value=<?php echo $nr["nianling"];?>><br>
注册时间<input type="text" name="zc_shijian" value=<?php echo $nr["zc_shijian"];?>><br>
<input type="submit" name="ok" value="提交">
</form>
<?php
}
else
{
$gx = "update zhuce set name='".$_POST["name"]."',xingbie='".$_POST["xingbie"]."',nianling='".$_POST["nianling"]."',zc_shijian='".$_POST["zc_shijian"]."' where id='".$_POST["id"]."'";
$fasong = mysql_query($gx);
if($fasong){
echo "记录已经成功修改<br><a href=gx_my.php>继续修改记录</a>";}
else{
echo "记录修改失败<br><a href=gx_my.php?id=".$_POST["id"].">返回</a>"; }
}
}
}
相关文章
js URLdecode()与urlencode方法支持中文解码
下面来介绍在js中来利用urlencode对中文编码与接受到数据后利用URLdecode()对编码进行解码,有需要学习的机友可参考参考。 代码如下 复制代码 ...2016-09-20- 这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
- 这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
- 这篇文章主要介绍了PostgreSQL判断字符串是否包含目标字符串的多种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23
- 这篇文章主要介绍了C++ string常用截取字符串方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
- 本文实例讲述了php字符串按照单词进行反转的方法。分享给大家供大家参考。具体分析如下:下面的php代码可以将字符串按照单词进行反转输出,实际上是现将字符串按照空格分隔到数组,然后对数组进行反转输出。...2015-03-15
- 这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
- 这篇文章主要介绍了使用list stream:任意对象List拼接字符串操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-09
关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)
最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅。首先:用show variables like “%colla%”;show varables like “%char%”;这两条...2015-11-24- 这篇文章主要介绍了C# 16 进制字符串转 int的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
- JS中默认中文字符长度和其它字符长度计算方法是一样的,但某些情况下我们需要获取中文字符串的实际长度,代码如下: 复制代码 代码如下: function strLength(str) { var realLength = 0, len = str.length, charCode = -1;...2014-06-07
- 这篇文章主要介绍了C#读取中文文件出现乱码的解决方法,涉及C#中文编码的操作技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
- 在debian环境下,彻底解决mysql无法插入和显示中文的问题Linux下Mysql插入中文显示乱码解决方案mysql -uroot -p 回车输入密码进入mysql查看状态如下:默认的是客户端和服务器都用了latin1,所以会乱码。解决方案:mysql>use...2013-10-04
- 这篇文章主要介绍了PostgreSQL 字符串处理与日期处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
- 我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
- 文章介绍一个实用的函数,我们如果用php substr来截取字符在中文上处理的很有问题,今天自己写了一个比较好的中文与英文字符截取的函数,有需要的朋友可以参考下。 ...2016-11-25
- 一.mysql默认不支持中文,它的server和db默认是latin1编码.所以我们要将其改变为utf-8编码,因为utf-8包含了地球上大部分语言的二进制编码 1.关闭mysql服务 sudo /etc/init.d/mysql stop 2.修改mysql配置文件 mysql配...2015-10-21
- 这篇文章主要介绍了C#实现对字符串进行大小写切换的方法,涉及C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25