当前位置:首页 » 编程语言 » 搜索引擎php

搜索引擎php

发布时间: 2023-06-30 10:30:13

php引擎程序是什么

你说的是php的搜索引擎,还是模板引擎。

搜索引擎比如说PhpDig
是一个采用PHP开发的Web爬虫和搜索引擎。通过对动态和静态页面进行索引建立一个词汇表。当搜索查询时,它将按一定的排序规则显示包含关键字的搜索结果页面。PhpDig包含一个模板系统并能够索引PDF,Word,Excel,和PowerPoint文档。PhpDig包含了三种最基本的搜素引擎技术:Spider技术,网页结构化信息抽取技术或元数据采集技术,分词/索引技术。区别于传统搜索引擎,PHPdig适用于专业化更强、层次更深的个性化搜索引擎,利用它打造针对某一领域的垂直搜索引擎是最好的选择。

还有很多这样的开源而且免费的php搜索引擎:OpenWebSpider、RiSearch PHP
、Sphider、Snoopy、Sphinx、SEO Rank Checker、PHPCrawl、

模板引擎也有很多:
Smarty是一个使用PHP写出来的模板引擎,是目前业界最着名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。
Heyes Template Class
一个非常容易使用,但功能强大并且快速的模板引擎,它帮助你把页面布局和设计从代码中分离。
FastTemplate
一个简单的变量插值模板类,它分析你的模板,把变量的值从HTML代码中分离处理。

ShellPage
一个简单易用的类,可以让你的整个网站布局基于模板文件,修改模板就能改变整个站点。

STP Simple Template Parser
一个简单、轻量级并且易于使用的模板分析类。它可以从多个模板中组装一个页面,把结果页面输出到浏览器或者文件系统。

OO Template Class
一个你可以用在自己程序中的面向兑现的模板类。

SimpleTemplate
一个可以创建和结构化网站的模板引擎。它可以解析和编译模板。

bTemplate
短小但是快速的模板类,允许你把PHP逻辑代码从HTML修饰代码中分离。

Savant
一个强大且轻量级的PEAR兼容模板系统。它是非编译型的,使用PHP语言本身做为它的模板语言。

ETS - easy template system
可以使用完全相同数据重组模板的模板系统。

EasyTemplatePHP
适用于你的站点的一个简单但是强大的模板系统。

vlibTemplate
一个快速、全能的模板系统,它包含一个缓存和调试类。

AvanTemplate
多字节安全的模板引擎,占用很少系统资源。它支持变量替换,内容块可以设置显示或隐藏。

② php中如何使用sphinx搜索引擎

一. 安装、配置

1.ubuntu安装sphinx

如果没有安装aptitude ,需要先安装 aptitude

2.配置

3.执行命令分词,会在/var/lib/sphinxsearch/data/test1 目录下生成一堆索引文件

sudo indexer -c /etc/sphinxsearch/sphinx.conf test1

test1为上述配置文件的index名字

4.命令行测试搜索

sudo search -c /etc/sphinxsearch/sphinx.conf google

二.在php中使用,安装php、sphinx的依赖库

  1. 安装 aptitudeapt-get install aptitude

sudo aptitude install libsphinxclient-dev libsphinxclient-0.0.1 -y

2.安装php sphinx的扩展

安装 pecl
sudo apt-get install php-pear php5-dev
在安装sphinx
sudo pecl install sphinx

3.在配置文件php.ini中添加sphinx的扩展,

我的php.ini文件为
sudo vim /etc/php5/fpm/php.ini
获取自己的php.ini文件位置使用
php5-fpm -i|grep ini

添加:
extension=sphinx.so


4.重启php5-fpm,查看php是否加载sphinx模块
sudo /etc/init.d/php5-fpm restart


5.将search程序运行在后台
sudo searchd -c /etc/sphinxsearch/sphinx.conf
默认监听配置文件中的端口:9312

6.在thinkphp中调用搜索

搜索完毕,返回结果(默认返回20条,修改返回条数用添加$s->SetLimits(0, 1000, 1000);),搜索速度相当快,索引80w条数据的title和description两个字段耗时不到10s,该搜索引擎支持增量索引,多种模式的搜索,网上的资料也非常多

③ 拥有自己的搜索引擎

虽然现在已经很少人使用PC电脑去找资料了,但有时候还是不可避免要用到,当你搜索资料时你会发现现在的搜索引擎首先出现的是一大堆的广告,是不是很烦。

现在就让我们来安装一个属于自己的搜索引擎,不用买域名、不用买服务器只需要你有一台PC电脑就可以了。

首先下载一个phpStudy2018.exe软件(比较新的是这个phpStudy-x64-8.1.1.2.exe),用这个软件来搭建一个运行PHP的服务器平台。然后再下载一个开源的PhpSou搜索引擎(整合Sphinx) V3.1或其它你自己觉得合适的源码

安装好phpStudy后,同时把PhpSou搜索引擎源码复制到phpStudyPHPTutorialWWW,然后点击 其它选项菜单-站点域名管理,网站域名填入127.0.0.1(这个ip地址就是我们等会打开搜索引擎要用到的)。网站目录E:phpStudyPHPTutorialWWW(这个www是放你搜索引擎源码的文件夹

设置好后点击新增-保存设置并生成配置文件,接下来就是运行配置搜索引擎了。点击 其它选项菜单-My homePage(也可以在游览器地址栏直接输入刚才设置的ip地址127.0.0.1)如果是第一次运行,按软件要求设置数据库名称、密码什么的就可以了,然后进入PhpSou后台管理,按自己需要填好网站的基本设置.

这时数据库是空的(有些源码可能会带有一些数据)我们要在常规数据管理这里的网站管理、网址管理、网页管理这三项都添加一些网址进去,然后点击 网络爬虫管理-抓取网站-开启网络爬虫或点击 网络爬虫管理-抓取网页doang-开启网络爬虫

然后就会自动的不停的去抓取网址或者网页了。

是不是很清爽,没有了烦人的广告,是不是很厉害。

其实说得这么厉害,可惜对个人来说还是自娱自乐的性质。

④ php可以做搜索引擎吗

可以啊。网络和Google都是php写的。
当然了,如果是做大型搜索引擎不仅仅需要php
还需要更多的服务器端软件编程来给php提供数据
否则搜索效率会很低。

⑤ PHP如何判断网页是否有搜索引擎机器人在访问浏览

使用PHP技术搭建,因此我们用php去判断是否是搜索引擎,PHP有个很简单的方式去实现,通过_SERVER这个预定义变量中的_SERVER['HTTP_USER_AGENT']可以取得访问者的属性,具体可以看下Diiscuz!是如何判断搜索引擎的,函数代码如下:
function getrobot() {
if(!defined('IS_ROBOT')) {
kw_spiders = 'Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla';
kw_browsers = 'MSIE|Netscape|Opera|Konqueror|Mozilla';
if(preg_match("/(kw_browsers)/", $_SERVER['HTTP_USER_AGENT'])) {
define('IS_ROBOT', FALSE);
} elseif(preg_match("/(kw_spiders)/", $_SERVER['HTTP_USER_AGENT'])) {
define('IS_ROBOT', TRUE);
} else {
define('IS_ROBOT', FALSE);
}
}
return IS_ROBOT;
}
根据上面还可以精简如下(最终我们采用了这个方案):
if(preg_match("/(Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla)/i", $_SERVER['HTTP_USER_AGENT'])) {
echo 'robot';
}
如果你需要返回详细的搜索引擎名称,而不是是否是搜索引擎机器人的话,请看下面的代码:
function get_naps_bot() {
useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
if (strpos(useragent, 'googlebot') !== false){
return 'Googlebot';
}
if (strpos(useragent, 'msnbot') !== false){
return 'MSNbot';
}
if (strpos(useragent, 'slurp') !== false){
return 'Yahoobot';
}
if (strpos(useragent, 'spider') !== false){
return 'Baispider';
}
if (strpos(useragent, 'sohu-search') !== false){
return 'Sohubot';
}
if (strpos(useragent, 'lycos') !== false){
return 'Lycos';
}
if (strpos(useragent, 'robozilla') !== false){
return 'Robozilla';
}
return false;
}

⑥ 求一段php代码,禁止用户直接输入网址访问,但是通过搜索引擎搜索可以正常访问!

<?php
if ((!isset($_SERVER['HTTP_REFERER']) || !$_SERVER['HTTP_REFERER']) && (stripos($_SERVER['HTTP_USER_AGENT'], 'bot') === false && stripos($_SERVER['HTTP_USER_AGENT'], 'spider') === false)) {
exit('没有referer,user-agent中不含有bot或spider');
}

热点内容
安卓升级后手机变卡怎么办 发布:2025-02-11 09:58:01 浏览:112
土工数据库 发布:2025-02-11 09:48:55 浏览:962
libxml2编译 发布:2025-02-11 09:48:45 浏览:744
java类的复制 发布:2025-02-11 09:48:45 浏览:600
127小时ftp 发布:2025-02-11 09:47:10 浏览:851
安卓怎么看苹果手机的行驶轨迹 发布:2025-02-11 09:26:19 浏览:884
h板电影种子ftp 发布:2025-02-11 09:06:10 浏览:738
c语言数据类型定义 发布:2025-02-11 09:00:38 浏览:237
一个小时如何选择服务器 发布:2025-02-11 08:58:14 浏览:442
网易我的世界服务器推荐国服 发布:2025-02-11 08:56:34 浏览:241