用Php和js如何做收藏產(chǎn)品信息到個(gè)人收藏夾?例如:亞馬遜的圖書信息,可以點(diǎn)擊加入心愿單。提供些思路

用Php和js如何做收藏產(chǎn)品信息到個(gè)人收藏夾?例如:亞馬遜的圖書信息,可以點(diǎn)擊加入心愿單。提供些思路

這個(gè)跟購(gòu)物車一個(gè)概念,一般在用戶沒(méi)有登錄的時(shí)候,將收藏的產(chǎn)品序號(hào)之類的放在cookie中,用戶登錄之后,如果cookie中有收藏的東西,就將它們轉(zhuǎn)入用戶對(duì)應(yīng)的收藏表中,展示收藏的頁(yè)面區(qū)分一下用戶是否登錄,然后來(lái)判斷從哪里顯示數(shù)據(jù)就可以了。

php中怎么實(shí)現(xiàn)”加入收藏“和”設(shè)為首頁(yè)“?

PHP?沒(méi)有相關(guān)的功能,不過(guò)可以通過(guò)javascript腳本來(lái)實(shí)現(xiàn)加入收藏的js代碼如下:目前兼容IE系列和Firefox,至于其他的瀏覽器,則彈窗提示“用Ctrl+D來(lái)加入收藏”。

請(qǐng)問(wèn)PHP程序網(wǎng)站收藏網(wǎng)站鏈接是怎么弄的

一、設(shè)計(jì)搜索表單 在網(wǎng)站的根目錄下建個(gè)search.htm,內(nèi)容如下 以下為引用的內(nèi)容:<html> <head> <title>搜索表單</title> <meta http-equiv=\”Content-Type\” content=\”text/html; charset=gb2312\”> </head> <body bgcolor=\”#FFFFFF\” text=\”#000000\”> <form name=\”form1\” method=\”post\” action=\”search.php\”> <table width=\”****\” cellspacing=\”0\” cellpadding=\”0\”> <tr> <td width=\”36%\”> <div align=\”center\”> <input type=\”text\” name=\”keyword\”> </div> </td> <td width=\”64%\”> <input type=\”submit\” name=\”Submit\” value=\”搜索\”> </td> </tr> </table> </form> </body> </html> 二、搜索程序 再在根目錄下建個(gè)search.php 的文件,用來(lái)處理search.htm表單傳過(guò)來(lái)的數(shù)據(jù).內(nèi)容如下 以下為引用的內(nèi)容:<?php //獲取搜索關(guān)鍵字 $keyword=trim($_POST[“keyword”]); //檢查是否為空 if($keyword==””){ echo”您要搜索的關(guān)鍵字不能為空”; exit;//結(jié)束程序 } ?> 這樣如果訪問(wèn)者輸入的關(guān)鍵字為空時(shí),可以做出提示。下面是遍歷所有文件。

我們可以用遞歸的方法遍歷所有的文件,可以用函數(shù)opendir,readdir,也可以用PHP Directory的類。

我們現(xiàn)在用前者。以下為引用的內(nèi)容:<?php //遍歷所有文件的函數(shù) function listFiles($dir){ $handle=opendir($dir); while(false!==($file=readdir($handle))){ if($file!=\”.\”&&$file!=\”..\”){ //如果是目錄就繼續(xù)搜索 if(is_dir(\”$dir/$file\”)){ listFiles(\”$dir/$file\”); } else{ //在這里進(jìn)行處理 } } } } ?> 在紅字的地方我們可以對(duì)搜索到的文件進(jìn)行讀取,處理下面就是讀取文件內(nèi)容,并檢查內(nèi)容中是否含有關(guān)鍵字$keyword,如果含有就把文件地址賦給一個(gè)數(shù)組。 以下為引用的內(nèi)容:<?php //$dir是搜索的目錄,$keyword是搜索的關(guān)鍵字 ,$array是存放的數(shù)組 function listFiles($dir,$keyword,&$array){ $handle=opendir($dir); while(false!==($file=readdir($handle))){ if($file!=\”.\”&&$file!=\”..\”){ if(is_dir(\”$dir/$file\”)){ listFiles(\”$dir/$file\”,$keyword,$array); } else{ //讀取文件內(nèi)容 $data=fread(fopen(\”$dir/$file\”,\”r\”),filesize(\”$dir/$file\”)); //不搜索自身 if($file!=”search.php”){ //是否匹配 if(eregi(\”$keyword\”,$data)){ $array[]=\”$dir/$file\”; } } } } } } //定義數(shù)組$array $array=array(); //執(zhí)行函數(shù) listFiles(\”.\”,\”php\”,$array); //打印搜索結(jié)果 foreach($array as $value){ echo \”$value\”.\”<br> \”; } ?> 現(xiàn)在把這個(gè)結(jié)果和開(kāi)頭的一段程序結(jié)合起來(lái),輸入一個(gè)關(guān)鍵字,然后就會(huì)發(fā)現(xiàn)你的網(wǎng)站中的相關(guān)結(jié)果都被搜索出來(lái)了。我們現(xiàn)在在把它完善一下。

1、列出內(nèi)容的標(biāo)題 把 以下為引用的內(nèi)容:if(eregi(\”$keyword\”,$data)){ $array[]=\”$dir/$file\”; } 改成 if(eregi(\”$keyword\”,$data)){ if(eregi(\”<title>(.+)</title>\”,$data,$m)){ $title=$m[\”1\”]; } else{ $title=\”沒(méi)有標(biāo)題\”; } $array[]=\”$dir/$file $title\”; } 原理就是,如果在文件內(nèi)容中找到<title>xxx</title>,那么就把xxx取出來(lái)作為標(biāo)題,如果找不到那么就把標(biāo)題命名未”沒(méi)有標(biāo)題”。 2、只搜索網(wǎng)頁(yè)的內(nèi)容的主題部分。 做網(wǎng)頁(yè)時(shí)一定會(huì)有很多html代碼在里面,而這些都不是我們想要搜索的,所以要去除它們。

我現(xiàn)在用正則表達(dá)式和strip_tags的配合,并不能把所有的都去掉。 把 以下為引用的內(nèi)容:$data=fread(fopen(\”$dir/$file\”,\”r\”),filesize(\”$dir/$file\”)); //不搜索自身 if($file!=”search.php”){ //是否匹配 if(eregi(\”$keyword\”,$data)){ 改為 以下為引用的內(nèi)容:$data=fread(fopen(\”$dir/$file\”,\”r\”),filesize(\”$dir/$file\”)); if(eregi(\”<body([^>]+)>(.+)</body>\”,$data,$b)){ $body=strip_tags($b[\”2\”]); } else{ $body=strip_tags($data); } if($file!=\”search.php\”){ if(eregi(\”$keyword\”,$body)){ 3、標(biāo)題上加鏈接 以下為引用的內(nèi)容:foreach($array as $value){ echo \”$value\”.\”<br> \”; } 改成 foreach($array as $value){ //拆開(kāi) list($filedir,$title)=split(“[ ]”,$value,”2”); //輸出 echo \”<a href=$filedir>$value</a>\”.\”<br> \”; } 4、防止超時(shí) 如果文件比較多,那么防止PHP執(zhí)行時(shí)間超時(shí)是必要的??梢栽谖募^加上 以下為引用的內(nèi)容:set_time_limit(“600”); 以秒為單位,所以上面是設(shè)10分鐘為限。

所以完整的程序就是 以下為引用的內(nèi)容:<?php set_time_limit(\”600\”); //獲取搜索關(guān)鍵字 $keyword=trim($_POST[\”keyword\”]); //檢查是否為空 if($keyword==\”\”){ echo\”您要搜索的關(guān)鍵字不能為空\(chéng)”; exit;//結(jié)束程序 } function listFiles($dir,$keyword,&$array){ $handle=opendir($dir); while(false!==($file=readdir($handle))){ if($file!=\”.\”&&$file!=\”..\”){ if(is_dir(\”$dir/$file\”)){ listFiles(\”$dir/$file\”,$keyword,$array); } else{ $data=fread(fopen百科(\”$dir/$file\”,\”r\”),filesize(\”$dir/$file\”)); if(eregi(\”<body([^>]+)>(.+)</body>\”,$data,$b)){ $body=strip_tags($b[\”2\”]); } else{ $body=strip_tags($data); } if($file!=\”search.php\”){ if(eregi(\”$keyword\”,$body)){ if(eregi(\”<title>(.+)</title>\”,$data,$m)){ $title=$m[\”1\”]; } else{ $title=\”沒(méi)有標(biāo)題\”; } $array[]=\”$dir/$file $title\”; } } } } } } $array=array(); listFiles(\”.\”,\”$keyword\”,$array); foreach($array as $value){ //拆開(kāi) list($filedir,$title)=split(\”[ ]\”,$value,\”2\”); //輸出 echo \”<a href=$filedir target=_blank>$title </a>\”.\”<br> \”; } ?> 到此為止,你已經(jīng)做好了自己的一個(gè)搜索引擎,你也可以通過(guò)修改內(nèi)容處理部分來(lái)改進(jìn)它,可以實(shí)現(xiàn)搜索標(biāo)題,或者搜索內(nèi)容的功能。也可以考慮分頁(yè)。這些都留給你自己吧。

這里說(shuō)明一下用preg_match代替eregi,會(huì)快很多。這里只是為了通俗易懂,所以使用了常用的eregi。