用Php和js如何做收藏產(chǎn)品信息到個人收藏夾?例如:亞馬遜的圖書信息,可以點擊加入心愿單。提供些思路
用Php和js如何做收藏產(chǎn)品信息到個人收藏夾?例如:亞馬遜的圖書信息,可以點擊加入心愿單。提供些思路
這個跟購物車一個概念,一般在用戶沒有登錄的時候,將收藏的產(chǎn)品序號之類的放在cookie中,用戶登錄之后,如果cookie中有收藏的東西,就將它們轉(zhuǎn)入用戶對應的收藏表中,展示收藏的頁面區(qū)分一下用戶是否登錄,然后來判斷從哪里顯示數(shù)據(jù)就可以了。
php中怎么實現(xiàn)”加入收藏“和”設(shè)為首頁“?
PHP?沒有相關(guān)的功能,不過可以通過javascript腳本來實現(xiàn)加入收藏的js代碼如下:目前兼容IE系列和Firefox,至于其他的瀏覽器,則彈窗提示“用Ctrl+D來加入收藏”。
請問PHP程序網(wǎng)站收藏網(wǎng)站鏈接是怎么弄的
一、設(shè)計搜索表單 在網(wǎng)站的根目錄下建個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> 二、搜索程序 再在根目錄下建個search.php 的文件,用來處理search.htm表單傳過來的數(shù)據(jù).內(nèi)容如下 以下為引用的內(nèi)容:<?php //獲取搜索關(guān)鍵字 $keyword=trim($_POST[“keyword”]); //檢查是否為空 if($keyword==””){ echo”您要搜索的關(guān)鍵字不能為空”; exit;//結(jié)束程序 } ?> 這樣如果訪問者輸入的關(guān)鍵字為空時,可以做出提示。下面是遍歷所有文件。
我們可以用遞歸的方法遍歷所有的文件,可以用函數(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{ //在這里進行處理 } } } } ?> 在紅字的地方我們可以對搜索到的文件進行讀取,處理下面就是讀取文件內(nèi)容,并檢查內(nèi)容中是否含有關(guān)鍵字$keyword,如果含有就把文件地址賦給一個數(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)在把這個結(jié)果和開頭的一段程序結(jié)合起來,輸入一個關(guān)鍵字,然后就會發(fā)現(xiàn)你的網(wǎng)站中的相關(guān)結(jié)果都被搜索出來了。我們現(xiàn)在在把它完善一下。
1、列出內(nèi)容的標題 把 以下為引用的內(nèi)容:if(eregi(\”$keyword\”,$data)){ $array[]=\”$dir/$file\”; } 改成 if(eregi(\”$keyword\”,$data)){ if(eregi(\”<title>(.+)</title>\”,$data,$m)){ $title=$m[\”1\”]; } else{ $title=\”沒有標題\”; } $array[]=\”$dir/$file $title\”; } 原理就是,如果在文件內(nèi)容中找到<title>xxx</title>,那么就把xxx取出來作為標題,如果找不到那么就把標題命名未”沒有標題”。 2、只搜索網(wǎng)頁的內(nèi)容的主題部分。 做網(wǎng)頁時一定會有很多html代碼在里面,而這些都不是我們想要搜索的,所以要去除它們。
我現(xiàn)在用正則表達式和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、標題上加鏈接 以下為引用的內(nèi)容:foreach($array as $value){ echo \”$value\”.\”<br> \”; } 改成 foreach($array as $value){ //拆開 list($filedir,$title)=split(“[ ]”,$value,”2”); //輸出 echo \”<a href=$filedir>$value</a>\”.\”<br> \”; } 4、防止超時 如果文件比較多,那么防止PHP執(zhí)行時間超時是必要的??梢栽谖募^加上 以下為引用的內(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)鍵字不能為空\”; 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=\”沒有標題\”; } $array[]=\”$dir/$file $title\”; } } } } } } $array=array(); listFiles(\”.\”,\”$keyword\”,$array); foreach($array as $value){ //拆開 list($filedir,$title)=split(\”[ ]\”,$value,\”2\”); //輸出 echo \”<a href=$filedir target=_blank>$title </a>\”.\”<br> \”; } ?> 到此為止,你已經(jīng)做好了自己的一個搜索引擎,你也可以通過修改內(nèi)容處理部分來改進它,可以實現(xiàn)搜索標題,或者搜索內(nèi)容的功能。也可以考慮分頁。這些都留給你自己吧。
這里說明一下用preg_match代替eregi,會快很多。這里只是為了通俗易懂,所以使用了常用的eregi。