성능을 높이는 방법이 있습니까? 왜냐하면 약 8 초가 걸리기 때문입니다. car_models 데이터베이스는 100.000 개가 넘고, cars 데이터베이스는 20.000 개가 넘고 car_parts는 20.000 개가 넘습니다. 키워드와 같은 데이터베이스를 위해 할 수 있습니다. 그러나 문제는 데이터베이스가 동적이라는 것입니다. 편집자가 매일 추가하는 기록을 의미합니다. 이 오픈 소스가 아니기 때문에 내가PHP mysql 및 in_array 성능
$news = dbquery("SELECT * FROM " . DB_NEWS . " ORDER BY news_id DESC LIMIT 0,1");
while ($news_data = dbarray($news))
{
echo $news_data['news_subject'];
$news_first_part = str_replace("\\", "", $news_data['news_news']);
$news_first_part = explode('.', $news_first_part); //first phrase
$news_first_part = $news_first_part[0];
$news_second_part = str_replace("\\", "", $news_data['news_extended']);
$find = array();
$keywords = dbquery("SELECT name FROM cars GROUP BY name");
while ($keywords_data = dbarray($keywords))
{
$my_keyword = $keywords_data['name'];
$news_first_part = str_replace($my_keyword, "<a href='keyword.php?keyword=$my_keyword' title='$my_keyword'>$my_keyword</a>", $news_first_part);
$news_second_part = str_replace($my_keyword, "<a href='keyword.php?keyword=$my_keyword' title='$my_keyword'>$my_keyword</a>", $news_second_part);
if ($news_first_part OR $news_second_part AND !in_array($my_keyword, $find,true))
{
array_push($find, $my_keyword);
}
}
$my_keyword="";
$keywords = dbquery("SELECT name FROM car_models GROUP BY name");
while ($keywords_data = dbarray($keywords))
{
$my_keyword = $keywords_data['name'];
if (strlen($my_keyword) > 10 && !in_array($my_keyword, $find, true))
{
$news_first_part = str_replace($my_keyword, "<a href='keyword.php?keyword=$my_keyword' title='$my_keyword'>$my_keyword</a>", $news_first_part);
$news_second_part = str_replace($my_keyword, "<a href='keyword.php?keyword=$my_keyword' title='$my_keyword'>$my_keyword</a>", $news_second_part);
}
}
$keywords = dbquery("SELECT name FROM car_parts GROUP BY name");
while ($keywords_data = dbarray($keywords))
{
$my_keyword = $keywords_data['name'];
if (strlen($my_keyword) > 10)
{
$news_first_part = str_replace($my_keyword, "<a href='keyword.php?keyword=$my_keyword' title='$my_keyword'>$my_keyword</a>", $news_first_part);
$news_second_part = str_replace($my_keyword, "<a href='keyword.php?keyword=$my_keyword' title='$my_keyword'>$my_keyword</a>", $news_second_part);
}
}
$my_keyword="";
echo $news_first_part . '.'; //note I added the final ponctuation
$news_first_part .= ".";
$news_second_part = str_replace($news_first_part, "", $news_second_part);
echo nl2br($news_second_part);
}
반복 키워드가 있습니까? – Cheery
네, 그 이유는 배열을 확인해야합니다. –