Вообщем голову сломал не понимаю почему не работает.... Структура: search.php search/results.php search/search.css search/search.js В файле search.php: Подключен: HTML: <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="search/search.js"></script> и в body: HTML: <div class="container"> <div class="row"> <div class="span12"> <h3>Результаты поиска:</h3> <div id="search-results"></div> </div> </div> </div> В search.js: Код: $(function(){ var s=location.search.replace(/^\?.*s=([^&]+)/,'$1') ,form=$('#search-form') ,input=$('input[type=text]',form) ,results=$('#search-results').height(0) ,src='search/results.php' ,ifr=$('<iframe width="100%" height="100%" frameborder="0" marginheight="0" marginwidth="0" allowTransparency="true"></iframe>') if(results.length) ifr .attr({ src:src+'?s='+s }) .appendTo(results) ,input .val(decodeURI(s)) window._resize=function(h){ results .height(h) } }) В results.php: PHP: <?phpif(!isset($_GET['s'])) { die('You must define a search term!');}$highlight = true;//highlight results or not$search_in = array('html', 'htm');//allowable filetypes to search in$search_dir = '../';//starting directory$recursive = true;//should it search recursively or notdefine('SIDE_CHARS', 80);$file_count = 0;$search_term = mb_strtolower($_GET['s'], 'UTF-8');//$search_term = $_GET['s'];$search_term_length = strlen($search_term);$final_result = array();$files = list_files($search_dir);foreach($files as $file){ $contents = file_get_contents($file); preg_match("/\<title\>(.*)\<\/title\>/", $contents, $page_title); //getting page title if (preg_match("#\<body.*\>(.*)\<\/body\>#si", $contents, $body_content)){ //getting content only between <body></body> tags $clean_content = strip_tags($body_content[0]); //remove html tags $clean_content = preg_replace( '/\s+/', ' ', $clean_content ); //remove duplicate whitespaces, carriage returns, tabs, etc //$found = strpos_recursive($clean_content, $search_term); $found = strpos_recursive(mb_strtolower($clean_content, 'UTF-8'), $search_term); $final_result[$file_count]['page_title'][] = $page_title[1]; $final_result[$file_count]['file_name'][] = $file;} if($found && !empty($found)) { for ($z = 0; $z < count($found[0]); $z++){ $pos = $found[0][$z][1]; $side_chars = SIDE_CHARS; if ($pos < SIDE_CHARS){ $side_chars = $pos; $pos_end = SIDE_CHARS + $search_term_length; }else{ $pos_end = SIDE_CHARS*2 + $search_term_length; } $pos_start = $pos - $side_chars; $str = substr($clean_content, $pos_start, $pos_end); $result = preg_replace('#'.$search_term.'#ui', '<span class="search">\0</span>', $str); //$result = preg_replace('#'.$search_term.'#ui', '<span class="search">'.$search_term.'</span>', $str); $final_result[$file_count]['search_result'][] = $result; } } else { $final_result[$file_count]['search_result'][] = ''; } $file_count++;}?><!DOCTYPE HTML><html lang="en-US" class="iframe"><head> <title>Результаты поиска</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="search.css" type="text/css" media="screen"></head><body><script type="text/javascript">;(function(){ document.body.onload=resize window.onresize=resize function resize(){ parent._resize(document.getElementById('search-results').offsetHeight) }})()</script> <div id="search-results"> <ol class="search_list"> <?php $match_count = 0; for ($i=0; $i < count($final_result); $i++){ if (!empty($final_result[$i]['search_result'][0]) || $final_result[$i]['search_result'][0] !== ''){ $match_count++; ?> <li> <h4 class="search_title"><a target="_top" href="<?php echo $final_result[$i]['file_name'][0]; ?>" class="search_link"> <?php echo $final_result[$i]['page_title'][0]; ?> </a></h4> ...<?php echo $final_result[$i]['search_result'][0]; ?>... <span class="match">Совпадений: <?php echo count($final_result[$i]['search_result']); ?> - URL: <?php echo $final_result[$i]['file_name'][0]; ?></span> </li> <?php } } if ($match_count == 0) { echo '<h4>No results found for <span class="search">'.$search_term.'</span></h4>'; } ?> </ol> </div></body></html><?php//lists all the files in the directory given (and sub-directories if it is enabled)function list_files($dir){ global $recursive, $search_in; $result = array(); if(is_dir($dir)){ if($dh = opendir($dir)){ while (($file = readdir($dh)) !== false) { if(!($file == '.' || $file == '..')){ $file = $dir.'/'.$file; if(is_dir($file) && $recursive == true && $file != './.' && $file != './..'){ $result = array_merge($result, list_files($file)); } else if(!is_dir($file)){ if(in_array(get_file_extension($file), $search_in)){ $result[] = $file; } } } } } } return $result;}//returns the extention of a filefunction get_file_extension($filename){ $result = ''; $parts = explode('.', $filename); if(is_array($parts) && count($parts) > 1){ $result = end($parts); } return $result;}function strpos_recursive($haystack, $needle, $offset = 0, &$results = array()) { $offset = stripos($haystack, $needle, $offset); if($offset === false) { return $results; } else { $pattern = '/'.$needle.'/ui'; preg_match_all($pattern, $haystack, $results, PREG_OFFSET_CAPTURE); return $results; }}?> В итоге выходит вот что: HTML: <div id="search-results" style="height: 0px;"> <iframe width="100%" height="100%" frameborder="0" marginheight="0" marginwidth="0" allowtransparency="true" src="search/results.php?s=%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE"> </iframe> </div> И не выводит ничего, в чем может быть проблема? Может в кодировке что-то не так? Или в размещении файлов? Я уже не знаю куда рыть. --- Добавлено, 12 авг 2014 --- Понятно почему... не выполняется results.php потому что походу у хостинга не включен php. На другом сайте все ок.