На другом сайте с кодировкой windows-1251 работает без проблем.
Вот код обработчика:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- include ("../blocks/db.php");
- $search = $_POST['search_word'];
- /*-------------------------------------------------ФУНКЦИИ------------------------------------------------------------------ */
- function stopWords($query) {
- $reg = "/\s(под|много|что|когда|где|или|которые|поэтому|все|будем|как|)\s/im";
- return $query;
- }
- /*--------------------------------------------------------------------------------------------------------------------- */
- function dropBackWords($word) {
- $reg = "/(ый|ой|ая|ое|ые|ому|а|о|у|е|ого|ему|и|ство|ых|ох|ия|ий|ь|я|он|ют|ат)(\s|$)/i";
- return $word;
- }
- /*----------------------------------------------------------------------------------------------------------------------------- */
- function colorSearchWord($word, $string, $color) {
- $replacement = "<span style='color:".$color."; background-color:#FFFF00;'>".$word."</span>";
- return $result;
- }
- /*---------------------------------------------------------------------------------------------------------------------------- */
- function explodeQuery($query) {
- $i = 0;
- $keywords = "";
- foreach ($words as $word) {
- $keywords[$i]=dropBackWords($word);
- $i++;
- }
- else {
- $keywords[$i]=$word;
- $i++;
- }
- }
- if($word == "stop"){ return $word; }
- else{ return $keywords; }
- }
- /*---------------------------------------------------------------------------------------------------------------------------- */
- function searchResult3($material3, $keywords) {
- foreach ($material3 as $material) {
- $wordWeight =0;
- foreach ($keywords as $word) {
- $reg = "/(".$word.")/";
- $material['relevation'] += $wordWeight;
- $title = colorSearchWord($word, $title, "red");
- $text = colorSearchWord($word, $text, "red");
- }
- if($material[relevation]!=0) {
- $res=$material[title] = $title;
- $rec=$material[text] = $text;
- //$rec=iconv("CP1251","UTF-8" , $rec);пробовал перекодировать результат, получил иероглифы.
- $rez = '<li id="programsss" style="border:1px solid #909090; color:#ffffff; background-color:#8C8C8C; border-radius:5px; margin-top:5px; padding:10px;"><a style="font-size:19px; " href="programs.php?id='.$material['id'].'"><img src="images/program.png">' . $res . '</a>'."<p style='font-weight:normal;'>". $recs ."..."."</p>"."<p style='color:#FFFF00;'>"."Совпадений: ". $material[relevation]."</p></li>";
- echo $rez;
- }
- else{
- }
- }
- }
- /*--------------------------------------------------------- КОНЕЦ ФУНКЦИЙ------------------------------------------------------ */
- $reg = "/((\{)|(\[)|(\()|(\*)|(\')|(\")|(select)|(limit)|(from)|(connect)|(root)|(bin)|(<)|(>)|(daemon)|(adm)|(lp)|(sync)|(shutdown)|(halt)|(mail)|(news)|(uucp)|(operator)
- |(games)|(mysql)|(httpd)|(nobody)|(dummy)|(www)|(cvs)|(shell)|(ftp)|(irc)|(debian)|(ns)|(download))/";
- echo $result;
- if($result == 1){exit ("<p style='color:red; background-color:black; border-radius:5px; padding:10px 0 10px 10px;'>Недопустимый запрос! Используйте только буквы и цифры!</p>");}
- else{
- $keywords = explodeQuery($query);
- $sql3 = "SELECT id, title, text, mini_img FROM program ";
- {
- $material3[$row3[id]] = $row3;
- }
- //print_r($material3);
- searchResult3($material3,$keywords); }
- else {
- echo "Произошла ошибка!";
- }
- }
- }
- else{ return false; }