Я был в этом весь день, и я не могу понять это. Я выдал, возможно, 6 разных решений, но не могу заставить это работать.
Ситуация: Страница загрузки. У нас есть массив, который анализирует и сопоставляет метафайл с локальной переменной, которая содержит желаемое доменное имя. Мы хотим, чтобы оба соответствовали. Таким образом, эта проверка не проходит, и она назначает "external = yes" , думая, что домены не имеют никакого отношения друг к другу, и переходит к остальной части сценария. Мы очень хотим, чтобы external = no, когда домен правильно сопоставлен с локальной переменной, содержащей «одинаковое» доменное имя (с параметрами url) .
Таким образом, он проверяет массив (анализирует) файл) с переменными, заключенными в ! in_array . Скажем, domain.com/somepage.html в нашей локальной переменной не может совпадать из-за /somepage.html
По умолчанию код выглядит следующим образом:
$match_urls = explode(",", strtolower($siteconfig["urls_list"]));
$FileInfo = array();
$FileInfo = ParseFile("$file_dir/$file_name");
$urls = $FileInfo[0];
$filehash = $FileInfo[1];
$creationdate = $FileInfo[2];
$internalname = $FileInfo[3];
if (!in_array($urls, $match_urls, 1)) {
$external = 'yes'; <-- domain fails to match, so we only get this (not good)
} else {
$external = 'no'; <-- We need this for matched domain (parsed & local variable)
}
Я попробовал следующее:
function CheckUrls($domain){
$domain = "http://website.com/announce";
if (preg_match('{^http://[\w\.]*website.com/}i', $domain)) {
return true;
} else {
return false;
}
}
И попробовал много разных вариантов в этом:
if (!in_array($urls, CheckUrls() === true, 1)) {
$external = 'yes';
} else {
$external = 'no';
}
Я также пробовал проходить:
$domain = "http://website.com/somepage.html";
$checkit = preg_match('{^http://[\w\.]*website.com/}i', $domain));
To:
if (!in_array($urls, $checkit, 1)) {
$external = 'yes';
} else {
$external = 'no';
}
За последние 4 часа я прошел var_dumped, и я пробовал и пытался, и проверял и проверял ... Я не могу понять это. Что я делаю не так?
Это отлично работает в матче:
preg_match('{^http://[\w\.]*website.com/}i', $domain)
Но я не могу реализовать это в! In_array () и это сводит меня с ума , Я пытался передать true / false / null безрезультатно.
Еще раз спасибо!