#php #arrays #search
#php #массивы #Поиск
Вопрос:
Я пытался использовать Google в течение последнего часа подряд и перепробовал множество способов поиска массива в массиве.
Моя цель — найти ключевое слово в URL, а ключевые слова находятся в текстовом файле.
Это то, что у меня есть до сих пор, но не работает.
$file = "keywords.txt";
$open = fopen($file,'r');
$data = fread($open,filesize($file));
$data = explode(" ",$data);
$url = (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$url = parse_url($url); //parse the URL into an array
foreach($data as $d)
{
if(strstr($d,$url))
{
echo "yes";
}
}
Это работает БЕЗ текстового файла или массива — но это не то, что я хочу.
Я был бы признателен, если кто-нибудь сможет мне помочь.
Комментарии:
1. Удалось ли вам заставить его работать Анонимно2011?
2. что вы имеете в виду, когда говорите, что он не работает. чего вы ожидаете и что это дает?
3. Я пытался использовать in_array (), подобный приведенному ниже методу vap0r, но по какой-то причине это не сработало, хотя я уверен, что это то, что я делал раньше… То, что я имел в виду, говоря, что это не работает, было ожидаемым результатом того, что php ответил «да»
Ответ №1:
Вот как я бы это сделал:
$file = "keywords.txt";
$open = fopen($file,'r');
$data = fread($open,filesize($file));
$data = explode(" ",$data);
$url = (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$url = parse_url($url); //parse the URL into an array
foreach($data as $d){
if(in_array($d,$url)){
echo "yes";
}
}
Комментарии:
1. Спасибо, Vap0r, это сработало отлично — я более чем уверен, что пробовал этот метод раньше (in_array()) lol.