首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP与模板与代码加密/优化 » [原创]关于内容显示的问题请教  


  作者:tvrvjxk
  注册时间:2004-10-11
  主题/回复:6/11
  积分:449
  等级:★★☆(五级)
  称号:略有小成

  tvrvjxk@sina.com..
  未提供
  www.

 

 发表:2005-06-23 18:47:30 阅读 2133 次 回复 1 次 得分1  |   字号 字色
[原创]关于内容显示的问题请教
我制作一个新闻网站
站内搜索中我用到了
搜索新闻标题,如要有就显示标题及新闻内容中的前200个字符,
$content=substr($adb[neirong],"0","200")."...";
但我的新闻内容前200个字符,有的是

<table width="778" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr> 
    <td width="335">
  <div align="center"><img src="image/ld1.jpg" width="240" height="152"></div>
    </td>
    <td width="443">
  <div align="center"><img src="image/ld.jpg" width="240" height="158"></div>
    </td>  </tr>  <tr> 
    <td width="335">
  <div align="center"><font color="#0000FF"></font></div>    </td>
    <td width="443">  <div align="center"><font color="#0000FF"></font></div>    </td>  </tr></table>
  林子。1885年(国务院批准,撤销县级绥化市,建立县级北林区,隶属于新建的地级绥化市管辖。全区幅员面积2743平方公里,总人口86万,物产富饶,水草丰茂,素有“黑土明珠”、“塞北江南”之美誉。


怎样不显示前边的代码?而显示后的文字内容。也就是代码不显示,显示纯文字,大家给点意见
 
 1#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 1#楼 发表于2005-06-23 19:42:01  评分:1 

个人认为难度比较大。
先说说你使用substr()的地方
substr($adb[neirong],"0","200")
最好写成
substr($adb[neirong],0,200)

虽然PHP对变量类型并不敏感,但是对于养成良好的习惯而言,写成下面的方式比较好。因为substr后面的两个参数是两个数字,表示开始也结束位置,用"0"就成了一个字符串。可能PHP并不在乎这个,但是从编程的角度来讲,这样是不对的。

至于如何只显示新闻内容而不是单纯取前多少个字符,感觉还是比较难。
如果新闻内容比较有规律,比如,每篇正文新闻前面都有<tabel那一段,那就好办了,直接算一下<tabel那一段的长度,比如是200个字符,然后不从0开始取,从201开始取,这样取的就是正文。。
如果新闻中前面的部分没有规律,那要麻烦的多。要判断哪个地方是正文的开始,是比较困难的事情。因为有时候正文不一定用中文字符开始,可能用数字,比如“2005年6月1日,我市...”这样,或者以一个符号开头,比如“[本报讯]。。。”所以要判断哪个地方是正文的开始,是有难度的。而且比较复杂。

我觉得,如果是后者,也就是说出现正文的位置不固定,正文前面的信息无规律,这样的话,你可以在新闻添加的时候,比如用户在文本框中输入的正文内容是“1885年(国务院批准,撤销县...”,在做其他处理之前,先在1885前面插入一个标记,比如“<start>”,这样,就成了“<start>1885年(国务院批准,撤销县...”,然后加上其他格式,写入数据库。在读取显示的时候,找到start的位置,把start去掉,然后从<start>的后面开始显示正文。这样可以通过比较简单的方法实现。

如果用户输入的信息直接就是以一段代码<table .....>开头,那么处理难度就增加不少,可以说非常复杂。个人认为,就没有必要为了一个搜索功能而费劲心思写这么一个程序实现取出正文的前多少个字符。
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.005sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版