求一PHP多条件搜索代码!

求一个静态页面PHP的搜索代码,没有数据库!我做了一个工程项目查询的页面,里面包含项目面积、项目地点、工程甲方等等6个搜索条件,如何通过上面定义好的条件进行站内搜索相关内... 求一个静态页面PHP的搜索代码,没有数据库!
我做了一个工程项目查询的页面,里面包含项目面积、项目地点、工程甲方等等6个搜索条件,如何通过上面定义好的条件进行站内搜索相关内容呢。
代码可用追加100!
是有很多页面,不过每个页面都包含上面那6个关键字,即项目地点等等。
只是关键字后面的内容不同。主要搜索的还是后面的内容。
比如:项目地点:埃塞俄比亚 工程甲方:中国铁建 等等 其实搜索的是冒号后面的内容。
展开
 我来答
gbgaobo5t
2009-06-18 · 超过25用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:78.1万
展开全部
<form name="database">
<input type="hidden" name="list" size=22

value="
s11a.html~项目面积
*s11b.html~项目地点
*s11c.html~工程甲方(其余的在网下家)
</form>
////以前是搜索的代码
<script language="JavaScript">

<!--

function Page(url,title,keywords,description) {

while ((url.length > 0) && (url.charAt(0) == " ")) {

url = url.substring(1,url.length);

}

this.url = url;

while ((title.length > 0) && (title.charAt(0) == " ")) {

title = title.substring(1,title.length);

}

this.title = title;

this.keywords = keywords;

this.description = description;

return this;

}

function Database() {

var pos = 0;

while ((pos1 = amorphous.indexOf("~",pos)) != -1) {

pos2 = amorphous.indexOf("|",pos1+1);

pos3 = amorphous.indexOf("^",pos2+1);

pos4 = amorphous.indexOf("*",pos3+1);

if ((pos2 != -1)

&& (pos2 < pos3) && (pos3 < pos4)

&& (pos4 <= amorphous.indexOf("*",pos))) {

this[database_length++] = new Page(amorphous.substring(pos,pos1),

amorphous.substring(pos1+1,pos2),

amorphous.substring(pos2+1,pos3),

amorphous.substring(pos3+1,pos4));

pos = pos4+1;

} else { // error reading amorphous database

if (pos+30 <= amorphous.length)

alert('Error reading in amorphous database around "'

+ amorphous.substring(pos,pos+30) + '"');

pos = amorphous.indexOf("*",pos) + 1;

}

}

return this;

}

function search(str) {

menu_length = 0;

temp = new Object();

temp_length = 0;

words_length = 0;

words = new Object();

pos = 0;

while ((pos = str.indexOf(" ")) != -1

&& and_search != "exact") {

words[words_length] = str.substring(0,pos);

if (words[words_length].length > 0)

words_length++;

if (str.length == 1)

str="";

else

str = str.substring(pos+1,str.length);

}

if (str.length > 0)

words[words_length++] = str;

for (q=0;q<words_length;q++) {

temp_length = 0;

str = words[q].toLowerCase();

len = (and_search=="and"&&q>0?menu_length:database_length);

for (n=0; n<len; n++) {

if (and_search=="and"&&q>0) {

combo = (menu[n].title + " " + menu[n].description

+ " " + menu[n].keywords).toLowerCase();

} else {

combo = (database[n].title + " " + database[n].description

+ " " + database[n].keywords).toLowerCase();

}

if (combo.indexOf(str) != -1) // found

temp[temp_length++] = (and_search=="and"&&q>0?menu[n]:database[n]);

}

if (and_search!="and" && q>0) {

added = 0;

for (i=0;i<temp_length;i++) {

duplicate = false;

for (j=0;j<menu_length&&!duplicate;j++) {

if (menu[j] == temp[i]) {

duplicate = true;

}

}

if (!duplicate)

menu[menu_length+(added++)] = temp[i];

}

menu_length += added;

} else {

for(h=0;h<temp_length;h++)

menu[h] = temp[h];

menu_length = temp_length;

}

}

}

function entry() {

if ((document.entryform.keyword.value.length == 0)

|| (document.entryform.keyword.value == " ")) {

alert("你必须填写关键字!");

return false;

}

and_search = (document.entryform.and_or.selectedIndex == 0?"and":"or");

if (document.entryform.and_or.selectedIndex == 2)

and_search = "exact";

location.href = location.pathname + "?"

+ escape(document.entryform.keyword.value)

+ (and_search != "or"?"&"+and_search:"");

return false;

}

function redWord(str) {

for(r=0; r<words_length; r++) {

pos = -3;

word = words[r].toLowerCase();

while ((pos = str.toLowerCase().indexOf(word,pos+3)) != -1) {

val = pos+word.length;

str = str.substring(0,pos) + "*"

+ str.substring(pos,val) + "|"

+ str.substring(val,str.length);

}

}

pos = -16;

while ((pos = str.toLowerCase().indexOf("*",pos+16)) != -1)

str = str.substring(0,pos) + "<font color=red>"

+ str.substring(pos+1,str.length);

pos = -7;

while ((pos = str.toLowerCase().indexOf("|",pos+7)) != -1)

str = str.substring(0,pos) + "</font>"

+ str.substring(pos+1,str.length);

return str;

}

var amorphous = document.database.list.value;

temp_str = amorphous.substring(amorphous.length-2,amorphous.length);

if (temp_str.indexOf("*") == -1)

amorphous += "* ";

else

amorphous += " "; // amorphous database must have characters after last asterisk

database_length = 0; // Netscape 2 fix

var database = new Database(); // read in from amorphous database

menu_length = 0; // Netscape 2 fix

var menu = new Object();

string = "";

and_search = "or";

if (location.search.length > 1) {

string = unescape(location.search.substring(1,location.search.length));

pos = 0;

while ((pos = string.indexOf('"',pos)) != -1) {

string = string.substring(0,pos) + '\\"' + string.substring(pos+1,string.length);

pos += 2;

}

if (string.substring(string.length-4,string.length) == "&and") {

string = string.substring(0,string.length-4);

and_search = "and";

} else if (string.substring(string.length-6,string.length) == "&exact") {

string = string.substring(0,string.length-6);

and_search = "exact";

} else if (string.substring(string.length-3,string.length) == "&or") {

string = string.substring(0,string.length-3);

and_search = "or";

}

search(string);

}

document.write('<form name="entryform" onSubmit="return entry()">'

+'产品搜索:<input type="text" size=22 '

+'name="keyword" value="'+string+'"> '

+'<input type="button" value="搜索" onClick="entry()" >   <select name="and_or" '

+'size=1><option'+(and_search=="and"?" selected":"")+'>全部产品</select></form><br>');

if (location.search.length > 1)

document.write('查询结果:<br>\n');

for (n=0; n<menu_length; n++)

document.write('<a href="'+menu[n].url+'">'+menu[n].title

+'</a><br>'+redWord(menu[n].description)+'<br>关键字: '

+redWord(menu[n].keywords)+'<br><br>\n');

if ((menu_length == 0) && (location.search.length > 1))

document.write('对不起:你查询的关键字"'+string+'"没有发现!\n');

// -->

</script>
yeahrahxephon
2009-06-18 · TA获得超过1166个赞
知道小有建树答主
回答量:1192
采纳率:0%
帮助的人:1238万
展开全部
很多页面么?说的不是很清楚
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式