2017-08-03 7 views
0

私はキーワードの検索コードを$ pages配列変数の中の指定されたページから検索しましたが、これは私が望むように動作していますが、$ pages配列に複数のページがあるので読み込むのに時間がかかります。どのようにこの速度を高めるには?私にお知らせください。ウェブサイト全体からキーワードを検索しながらコンテンツを読み込む速度を上げるにはどうすればよいですか?

<?php 
$match=""; 
if(isset($_POST['submit'])){ 
    if(isset($_POST['txt_search'])){ 
     $match=trim($_POST['txt_search']); 
    } 
    if($match==""){ 
     print "Please enter search text";exit; 
    } 
}  
<html> 
    <body>  
    <form action="" method="post"> 
     <input type="text" name="txt_search" placeholder="Search term"/> 
     <input type="submit" value="Search" name="submit" onClick=""/> 
    </form> 
    <p id="text"> 
     <?php if($match!=""){ 
      mastersearch($match); 
     }?> 
    </p> 
    </body> 
</html> 
<?php 
function mastersearch($match) { 
    $pages=array("index.php","about.php","contact.php","books.php","careers.php","shopping.php","travels.php","lifestyle.php","movies.php","museum.php"); 
    foreach ($pages as $value) { 
     $text=$value; 
     $path="http://sitename.com/user/"; 
     $value = $path.$value; 
     $json = file_get_contents($value); 
     $lastPos=0; 
     $last=strripos($json, $match); 
     while (($lastPos = stripos($json, $match, $lastPos))!== false) { 
      $positions[] = $lastPos; 
      preg_match("/<title>(.*)<\/title>/i", $json, $title); 
      print $title[1]; 
      print "<br><a href='$value'>$text</a><br/>"; 
      $lastPos = $lastPos + strlen($match); 
     } 
    } 
} 
?> 
+0

SOLRのような検索サービスは通常、見つかったすべてのキーワードの最新のインデックスを保持します各ページにコードをスピードアップするには、そのようなサービスを使用して、1時間ごとに、またはコンテンツが作成/更新されるたびに実行されるスケジュールされたタスクを介して更新することができます。 – apokryfos

答えて

0

あなたtime your script場合、私はfile_get_contents()呼び出しが高価なものであることを前提としています。それはリモートサイトへの接続に依存しますので、接続を改善したり、何らかのキャッシュを導入したりすることができます。

関連する問題