Поиск по сайту

wcb-falcon

Новичок
Где то когда то нашел пример по поиску до сего времени она работал (на мастерхосте) переехали на агаву и тотже самый скрипт вызывает ошибку :(
вот пример скрипта:
PHP:
$searcharr = array();

$search = $_POST['search_text'];

    $search = trim($search); 
    $search = mysqli_real_escape_string($db,$search);
    $search = htmlspecialchars($search);

    if (!empty($search)) 
    { 
        if (strlen($search) < 3) {
            $text = '<p>Слишком короткий поисковый запрос.</p>';
        } else if (strlen($search) > 128) {
            $text = '<p>Слишком длинный поисковый запрос.</p>';
        } else { 

						$n = 0;
						$text = '';
						$numall = 0;
						
            $query_search = "SELECT `id`, `url`, `title`, `body`
                  FROM `content` WHERE
									`title` LIKE '%{$search}%'
                  OR `body` LIKE '%{$search}%' ";
						
						$res_search = mysqli_query($db,$query_search) or die(f_error(mysqli_errno($db),mysqli_error($db),$query_search));

            if (mysqli_affected_rows($db) > 0) { 
                $row = mysqli_fetch_assoc($res_search); 
                $num = mysqli_num_rows($res_search);

                
								$numall += $num;

								while ($line_search = mysqli_fetch_array($res_search)){
									$searcharr[$n]['table'] = 'content';
									$searcharr[$n]['id'] = $line_search['id'];
									
									$searcharr[$n]['name'] = $line_search['title'];
									
									$addres = UrlMenu($line_search);
									$searcharr[$n]['link'] = $addres['link'];
									$searcharr[$n]['target'] = $addres['target'];
									
									$n++;
								}
								
            } else {
                $text .= '<p>По вашему запросу ничего не найдено.</p>';
            }
						
						
						
						$by = 'name';
						usort($searcharr, function($first, $second) use( $by ) {
						if ($first[$by]>$second[$by]) { return 1; }
						elseif ($first[$by]<$second[$by]) { return -1; }
						return 0;
						});
						
						
						if(count($searcharr)>0){
							
							$text .= '<p>По запросу <b>'.$search.'</b> найдено совпадений: '.$numall.'</p>';
							
							asort($searcharr);
							$text .= '<ul>';
							for($i=0;$i<count($searcharr);$i++){
								$text .= '<li><a href="'.$searcharr[$i]['link'].'" '.(isset($searcharr[$i]['target'])?'target="'.$searcharr[$i]['target'].'"':'').'>'.$searcharr[$i]['name'].'</a></li>';
							}
							$text .= '</ul>';
						}
						
        } 
    } else {
        $text = '<p>Задан пустой поисковый запрос.</p>';
    }
		
		echo $text;
а вот ошибка которую теперь выдает
Parse error: syntax error, unexpected T_FUNCTION in /var/www/pochekuev/data/www/pochekuev.ru/search.php on line 55
ссылаясь на строку вот с этим выражением
usort($searcharr, function($first, $second) use( $by ) {

Просьба пояснить чего не хватает хостеру (что нужно включить чтобы заработало на хосте)
или же как переделать поисковик чтобы он работал
 

wcb-falcon

Новичок
Не совсем понял смысл вашей ссылки (только если изучение анонимных функция)

Если есть возможность помогите переделать функцию поиска так чтобы она сработала и на старой версии пхп (поиск как видно проходит из базы в данном случае указана только одна таблица но по ее аналогии можно подключать и другие таблицы из всего найденного собирается новый массив данных который уже выводится пользователю.
 

Absinthe

жожо
wcb-falcon судя по всему, твой хостинг для добычи электричества сжигает в топках мамонтовое дерьмо. Версия PHP примерно того времени.
Съезжай с него на нормальный.
 
Сверху