帝国CMS内容页面过滤清理简介smalltext里前后空格的方法

想必各位站长在做站的过程中,特别是采集的时候,难免在简介字段smalltext里会出现一些空格,有的在前,有的在后,但是如果在内容页的TDK里填写了[!--pagedes--]的话,空格也会显示出来。那么按照下面的方法便可以消除代码里的空格,对搜索引擎更好。

第一种写法,直接写在模版代码里:

<?
$qian=array(" "," ","\t","\n","\r");$hou=array("","","","","");
$smalltext=str_replace($qian,$hou,$navinfor[smalltext]);
echo $smalltext;
?>

第二种写法,需要修改相关函数:

我们构造一个过滤函数,将其放在“/e/class/userfun.php”里面,代码如下:

function phome_format_html($str){
$str=trim($str);
$str=str_replace('&','',$str);
$str=str_replace('ldquo;','“',$str);
$str=str_replace('rdquo;','”',$str);
$str=str_replace('middot;','·',$str);
$str=str_replace('lsquo;','‘',$str);
$str=str_replace('rsquo;','’',$str);
$str=str_replace('hellip;','…',$str);
$str=str_replace('mdash;','—',$str);
$str=str_replace('ensp;','',$str);
$str=str_replace('emsp;','',$str);
$str=str_replace('nbsp;','',$str);
$str=str_replace(' ','',$str);
$str=str_replace('t','',$str);
$str=str_replace('rn','',$str);
$str=str_replace('r','',$str);
$str=str_replace('n','',$str);
$str=str_replace(' ','',$str);
$str = preg_replace('/s(?=s)/','', $str);// 接着去掉两个空格以上的
$str = preg_replace('/[nrt]/',' ', $str);// 最后将非空格替换为一个空格
return trim($str);
}

接下来我们在前端模板中调用该函数,使用方式如下,就可以实现过滤帝国cms模板中输出数据的html字符了。

<?=phome_format_html($navinfo['smalltext'])?>

在内容页模版代码里你需要调用smalltext简介字段的地方,使用上面的代码即可输出过滤前后空格的简介。

### 回答1: 可以使用以下代码实现: private void btn统计_Click(object sender, EventArgs e) { string input = txt小文本框.Text; int count = CountOccurrences(rtb大文本框.Text, input); rtb大文本框.AppendText(count.ToString() + Environment.NewLine); } private int CountOccurrences(string text, string pattern) { int count = 0; int i = 0; while ((i = text.IndexOf(pattern, i)) != -1) { i += pattern.Length; count++; } return count; } ### 回答2: 使用C#语言实现该功能的步骤如下: 1. 创建一个窗体应用程序,并在窗体上添加一个大文本框(TextBox)和一个小文本框(TextBox),以及一个按钮(Button)用于触发统计操作。 2. 在按钮的Click事件处理程序中编写代码,实现统计功能。首先通过大文本框的Text属性获取其中的文本内容,然后通过小文本框的Text属性获取要统计的内容。接着,使用字符串的Split方法将大文本框的内容按照小文本框的内容进行分割,得到一个字符串数组。最后,通过数组的Length属性获取该数组的长度,即为大文本框中包含了多少个小文本框中的内容。 3. 将统计结果显示在大文本框中,可以通过设置大文本框的Text属性或使用大文本框的AppendText方法添加统计结果。 以下是一个简单的示例代码: ```csharp private void btn统计_Click(object sender, EventArgs e) { string 大文本框内容 = txt大文本框.Text; string 小文本框内容 = txt小文本框.Text; string[] 分割结果 = 大文本框内容.Split(new string[] { 小文本框内容 }, StringSplitOptions.None); int 统计结果 = 分割结果.Length - 1; txt大文本框.Text = "大文本框中包含了" + 统计结果 + "个小文本框中的内容。"; } ``` 通过以上代码,当单击“统计”按钮时,会在大文本框中显示包含了多少个小文本框中的内容。请注意,此处假设小文本框的内容不为空且不包含特殊字符。如果需要处理更复杂的情况,可能需要自行添加相关的校验和异常处理逻辑。 ### 回答3: 在C#中实现该功能,可以使用Windows Forms进行界面设计。首先,在窗体中放置一个大文本框和一个小文本框,再加上一个按钮。然后,通过给按钮的Click事件添加相应的处理方法,实现统计功能。 具体代码如下所示: ```csharp using System; using System.Windows.Forms; namespace TextStatistics { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void btn统计_Click(object sender, EventArgs e) { // 获取大文本框中的所有文本 string bigText = txt大文本框.Text; // 获取小文本框中的内容 string smallText = txt小文本框.Text; // 统计大文本框中包含小文本框内容的个数 int count = 0; int index = -1; while ((index = bigText.IndexOf(smallText, index + 1)) != -1) { count++; } // 显示统计结果 MessageBox.Show("大文本框中包含了" + count + "个小文本框中的内容"); } } } ``` 在该代码中,我们首先获取了大文本框和小文本框的内容,然后使用IndexOf方法在大文本框中查找小文本框的内容,每次找到一次都将计数器加1,最后通过MessageBox显示统计结果。 需要注意的是,上述代码只是简单实现了功能的核心部分,还需要根据实际应用需求进行界面设计及异常处理等。此外,还需要将代码与窗体进行绑定,使之能够在界面上运行和显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值