当前位置:首页 » 净水方式 » php关键字过滤算法

php关键字过滤算法

发布时间: 2021-04-05 10:52:54

① PHP数据过滤的几种方式

调度方法
这种方法是来用一个单源一的 php 脚本调度(通过 URL)。其他任何操作在必要的时候使用include或require包含进来。这种方法一般需要每个 URL 都传递一个单独的GET变量用于调度。这个GET变量可以被认为是用来替代脚本名称的更加简化的设计。

② PHP 字符串关键字匹配

只要内容中有关键字就替换成超链接

functionTextHandle($source,Array$texts){

/**
*@sourceString需要处理的源字符串
*@textsArray需要替换的所有关键字
*
*/

foreach($textsAS$text){
$source=str_replace($text,"<ahref=''>".$text."</a>",$source);
}

return$source;
}

$source="你好,我是一个帅哥";
echoTextHandle($source,['你好','帅哥']);//将[你好][帅哥]替换掉.

③ PHP中怎么实现关键字搜索

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=utf-8">
</head>
<style type="text/css">
body{
font-size: 12px;font-family: verdana;width: 100%;
}
div.page{
text-align: center;
}
div.content{
height: 300px;
}
div.page a{
border:#aaaadd 1px solid;text-decoration: none;padding: 2px 5px 2px 5px;margin: 2px;
}
div.page span.current{
border:#000099 1px solid;background-color: #000099;padding: 2px 5px 2px 5px;margin: 2px;color: #fff;font-weight: bold;
}
div.page span.disable{
border:#eee 1px solid;padding:2px 5px 2px 5px; margin: 2px;color:#ddd;
}
div.page form{
display: inline;
}
</style>
<body>
<?php
//设置级别错误,通知类除外
error_reporting('E_ALL&~E_NOTICE');
/**1---传入页码,使用GET获取**/
$page=$_GET['p'];
/**2---根据页码取出数据:php->mysql处理**/
$host="localhost";
$username="root";
$password="root";
$db="db4"; //数据库
$mysql_table="person"; //数据表
$table_guanjianzi="think"; //关键字

$pageSize=10;
$showPage=5;
//连接数据库,面向过程
$conn=mysqli_connect($host,$username,$password);
if(!$conn){
echo "数据库连接失败";
exit;
}
//选择所要操作的数据库
mysqli_select_db($conn,$db);
//设置数据库编码格式
mysqli_query($conn,"SET NAMES UTF8");
//编写sql获取分页数据 SELECT * FROM 表名 LIMIT 起始位置,显示条数
//注意:以下id,name,age,say都是字段节点名,person是表名,db4是数据库名,think是指定的关键字.
$sql = "SELECT id, name, age, say
FROM person
WHERE say LIKE '%{$table_guanjianzi}%' order by id ASC LIMIT ".($page-1)*$pageSize .",{$pageSize}"; //双引号能包单引号,反过来不行,会出错./
// $sql = 'SELECT id, name, age, say
// FROM person
// WHERE say LIKE "%'think'%" order by id ASC LIMIT '.($page-1)*$pageSize .",{$pageSize}";
// 节点名 关键字 节点名 可指定数量limit后可写一个指定的数字
//$sql="select * from $mysql_table"
//$sql='select * from data where Id='.$id.' order by '.$item.' desc';
//把sql语句传送到数据库
$result=mysqli_query($conn,$sql);
//将数据显示到table中,并未table设置格式
echo "<div class='content'>";
echo "<table border=1 cellspacing=0 width=30% align=center>";
echo "<tr><td>ID</td><td>NAME</td><td>say</td></tr>";

while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
echo "<td>{$row['id']}</td>";
echo "<td>{$row['name']}</td>";
echo "<td>{$row['say']}</td>";
echo "<tr>";
}
echo "</table>";
echo "</div>";
//释放结果
mysqli_free_result($result);
//获取数据总条数
$total_sql="SELECT COUNT(*)FROM $mysql_table";
$total_result=mysqli_fetch_array(mysqli_query($conn,$total_sql));
$total=$total_result[0];
$total_pages=ceil($total/$pageSize);
//关闭数据库
mysqli_close($conn);
/**3---显示数据+显示分页条**/
$page_banner="<div class='page'>";
//计算偏移量
$pageoffset=($showPage-1)/2;
//两种情况下 首页、上一页 的显示效果
if($page>1){
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=1'>首页</a>";
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=" .($page-1) . "'><上一页</a>";
}else{
$page_banner .="<span class='disable'>首页</span>";
$page_banner .="<span class='disable'><上一页</span>";
}
//显示
$start=1;
$end=$total_pages;
//当总条数大于分页数时
if($total_pages>$showPage){
if($page>$pageoffset+1){
$page_banner .="...";
}
if($page>$pageoffset){
$start=$page-$pageoffset;
$end=$total_pages>$page+$pageoffset?$page+$pageoffset:$total_pages;//三段式
}
//最前面几个特殊页号的显示。当前指的是页号1或者2时
else{
$start=1;
$end=$showPage;
}
//最后面几个特殊页号的显示,当前显示的是页号7和8
if($page+$pageoffset>$total_pages){
$start=$start-($page+$pageoffset-$end);//注意理解这一句
}
}
//显示页码
for($i=$start;$i<=$end;$i++){
//当前页页码上显示背景色
if($page==$i){
$page_banner .="<span class='current'>{$i}</span>";
}
//非当前页码显示
else{
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=" .$i . "'>{$i}</a>";
}
}
if($total_pages>$showPage&&$total_pages>$page+$pageoffset){
$page_banner .="...";
}
//两种情况下的尾页、下一页 的显示效果
if($page<$total_pages){
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=" .($page+1) . "'>下一页></a>";
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=$total_pages'>尾页</a>";
}else{
$page_banner .="<span class='disable'>尾页</span>";
$page_banner .="<span class='disable'>下一页></span>";
}
$page_banner .= "共{$total_pages}页,";
$page_banner .= "<form action='mypage.php' method='get'>";
$page_banner .= " 到第<input type='text' size=2 value='1' name='p'>页";
$page_banner .= "<input type='submit' value='确定'>";
$page_banner .= "</form>";
$page_banner .= "</div>";
echo $page_banner;
?>
</body>
</html>

④ php 过滤重复词组 相同关键词测过滤掉

楼上瞎扯淡,人家是要实现过滤重复词组,不是要你对他的代码做解释
function replaceRepeated($words)
{
$arrSrc =explode(" ",$words);
$arrDst =array();
foreach($arrSrc as $key=>$val)
{
if(!in_array($val,$arrDst))$arrDst[] =$val;
}
return join(" ",$arrDst);
}
$str ="大家好 今天天气真好啊 在干么啊 今天天气真好啊 没干什么啊";
echo replaceRepeated($str);//输出大家好 今天天气真好啊 在干么啊 没干什么啊
算法很简单:
将原来的语句用空格分隔到数组,然后定义另外一个数组存放过滤后的词组,在循环式检查当前字符串在第二个数组中是否存在,不存在则存放到第二个数组,最后函数返回第二个数组即可

⑤ php过滤指定字符的函数

explode — 使用一个字符串分割另一个字符串

array explode ( string $delimiter , string $string [, int $limit ] )

此函数返回由字符串组成的数组,每个元素专都是 string 的一个属子串,它们被字符串 delimiter 作为边界点分割出来。

<?php
//示例1
$pizza="";
$pieces=explode("",$pizza);
echo$pieces[0];//piece1
echo$pieces[1];//piece2

//示例2
$data="foo:*:1023:1000::/home/foo:/bin/sh";
list($user,$pass,$uid,$gid,$gecos,$home,$shell)=explode(":",$data);
echo$user;//foo
echo$pass;//*

?>

⑥ 求php实现多个字符过滤功能

if(preg_match('/(词1|词2|词3)+/', $string)){
return false;

}

⑦ php获取指定内容后进行过滤

一般来说strip_tags作用就是去掉内容中的html标签
你可以这样
<?php
$content = strip_tags($content);
echo '<pre>';
echo $content;
echo '</pre>';
?>

你看看这些内容是否符合要求,如果不符合要求 就用str_replace函数替换,或者也可以用正则表达式,preg_replace替换

这样处理后肯定就能达到你的目的

⑧ php关键词拦截程序,拦截后怎么知道哪个词为非法词组

你把以下两个文件改动下:
文件一、panan.php改动如下
/**
* 判断文本中是否存在关键词
*/
function filter_text($text, $badstring){
$filter = explode('|', $badstring);
foreach ($filter as $key) {
if(strpos($text, $key) !== false){
return $key;//这里将原来的true改为$key,目的是为了将违规的词返回
}
}
return false;
}
文件三:index.php
<?php
require_once("panan.php");
require_once("filter.php");
$biaoti="如果包含此内容就不能通过!";
if($word = filter_text($biaoti, $badstring)){//改动:此处将filter_text方法的返回值赋值给$word
echo "对不起,你提交的内容包含“{$word}”文字不能发表,请删除“{$word}”文字后再提交!";//将word值打印出来
exit();
}
?>
你将这两个文件有注视的位置改下就行了。如果不行你可以加我网络hi,希望能帮到你。

⑨ php怎么提取和过滤一段字符串里面的内容

这些东西怎么看起来想javascript干的事情。当然php也可以干,对于php而言,所有的html代码都一样只是文本而已内,所以可以用容replace等函数替换就行。对于javascript而言这个是dom处理起来就灵活的多。

⑩ PHP中如何用正则表达式分离出某个关键词前后的文字

<?php
$temp = 'www..com';
$str = '多谢专家!太详细了!
“具体取关键词左右的文字是什么意思,是取该关键字前100个字,和该关键字后100个字码”:是这样的,就是取关键词前、后各一百个字。
剩下的我仔细琢磨琢磨~
======www..com
另外,您的答案里的中文字,是按照GB码来算的吗?我看到操作字符串都是200~~那我要是用UTF8是不是就是300了?
=====
试了一下,截的还是有些问题...我这个问题不能用正则表达式直接截取吗?也就是用正则表达式直接把关键字左右各N个字截过来~';
$str = mb_convert_encoding($str, "UTF-8", "GB2312");
preg_match_all("/(.{10}$temp.{10})/su", $str, $matches, PREG_SET_ORDER);
print_r($matches);
?>

这样?楼上回答的不是很好么。。。呵呵

热点内容
丁度巴拉斯情人电影推荐 发布:2024-08-19 09:13:07 浏览:886
类似深水的露点电影 发布:2024-08-19 09:10:12 浏览:80
《消失的眼角膜》2电影 发布:2024-08-19 08:34:43 浏览:878
私人影院什么电影好看 发布:2024-08-19 08:33:32 浏览:593
干 B 发布:2024-08-19 08:30:21 浏览:910
夜晚看片网站 发布:2024-08-19 08:20:59 浏览:440
台湾男同电影《越界》 发布:2024-08-19 08:04:35 浏览:290
看电影选座位追女孩 发布:2024-08-19 07:54:42 浏览:975
日本a级爱情 发布:2024-08-19 07:30:38 浏览:832
生活中的玛丽类似电影 发布:2024-08-19 07:26:46 浏览:239