Я пытаюсь создать скрипт, который будет показывать новый IP на основе имени состояния. IP-адрес должен быть взят из файла с тем же именем, что и имя состояния. Затем он принимает случайный IP-адрес и назначает его (вот как он должен работать).file_get_contents не получает содержимое нужного файла
Проблема в том, что он присваивает полностью случайные IP-адреса и загружает их IP-адреса из случайного файла вместо того, чтобы принимать его из правильного файла с именем состояния.
Как это должно работать: калифорния> california.txt> случайных IP
Как это работает сейчас: калифорния> NewYork/грузия/техасский/etc.txt> случайных IP
$state_content=["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","NewHampshire","NewJersey","NewMexico","NewYork","NorthCarolina","NorthDakota","Ohio","Oklahoma","Oregon","Pennsylvania","RhodeIsland","SouthCarolina","SouthDakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","WestVirginia","Wisconsin","Wyoming"];
$country_content=["UnitedStates", "UnitedKingdom", "Canada", "Australia", "Germany", "France", "Spain"];
$a = 0;
function getStateContent($state_name) {
// checks do we already have content for this state
if(!isset($state_content[$state_name])) {
// generate file name
$file_name = "state/";
$file_name .= str_replace(" ", "", ucwords($state_name));
$file_name .= ".txt";
$state_text = file_get_contents($file_name);
$state_content[$state_name] = explode("\n", $state_text);
}
return $state_content[$state_name];
}
function getStateIpByName($state_name) {
$content = getStateContent($state_name);
return $content[array_rand($content)];
}
function getCountryContent($country_name) {
// checks do we already have content for this state
if(!isset($country_content[$country_name])) {
// generate file name
$file_name = "country/";
$file_name .= str_replace(" ", "", ucwords($country_name));
$file_name .= ".txt";
$country_text = file_get_contents($file_name);
$country_content[$country_name] = explode("\n", $country_text);
}
return $country_content[$country_name];
}
function getCountryIpByName($country_name) {
$content = getCountryContent($country_name);
return $content[array_rand($content)];
}
Использование:
if ($result->num_rows > 0) {
// output data of each row
echo "<div class='block'><div class='rows'>";
while($row = $result->fetch_assoc()) {
if (!empty($row["state"]) && $row["country"] == "united states") {
$stateip = getStateIpByName($row["state"]);
$a++;
echo $stateip;
}
else if (empty($row["state"]) && $row["country"] == "united states") {
$countryip = getCountryIpByName($row["country"]);
$a++;
echo $countryip;
}
else if ($row["country"] != "united states") {
}
}
См эти заявления, '$ state_content [$ state_name] = explode ("\ n", $ state_text); 'и' $ country_content [$ country_name] = explode ("\ n", $ country_text); '. Оригинальные массивы, то есть '$ state_content' и' $ country_content', обрабатываются/меняются каждый раз, когда соответствующие функции вызывают из цикла while. –
Я вижу. Любые идеи о том, как я могу это исправить? – Ricardo
Что содержат эти файлы? IP-адреса? Кроме того, что вы пытаетесь сделать с * этими * утверждениями? –