Ich versuche, ein Skript zu erstellen, die Benutzer aus einer db-Tabelle herunterladen und eine neue zufällige IP jedem Benutzer basierend auf seinem Status anhängen wird.Minimieren Sie Bemühungen mit Foreach
Das Problem ist, dass ich eine Menge Code geschrieben habe und es immer noch viel Copy/Paste Job gibt, wenn ich es mit diesem Ansatz behalte.
Kann mir jemand auf die richtige Richtung zeigen, wie man das richtig macht?
Also zuerst habe ich 50 davon:
$California_Text = file_get_contents('state/California.txt');
$California_textArray = explode("\n", $California_Text);
$Idaho_Text = file_get_contents('state/Idaho.txt');
$Idaho_textArray = explode("\n", $Idaho_Text);
$Illinois_Text = file_get_contents('state/Illinois.txt');
$Illinois_textArray = explode("\n", $Illinois_Text);
$Indiana_Text = file_get_contents('state/Illinois.txt');
$Indiana_textArray = explode("\n", $Indiana_Text);
$Iowa_Text = file_get_contents('state/Iowa.txt');
Dann habe ich 50 von ihnen haben:
while($row = $result->fetch_assoc()) {
if (isset($row["state"])) {
foreach ($row as $value){
$California_randArrayIndexNum = array_rand($California_textArray);
$p_California = $California_textArray[$California_randArrayIndexNum];
$Texas_randArrayIndexNum = array_rand($Texas_textArray);
$p_Texas = $Texas_textArray[$Texas_randArrayIndexNum];
$Alabama_randArrayIndexNum = array_rand($Alabama_textArray);
$p_Alabama = $Alabama_textArray[$Alabama_randArrayIndexNum];
$Alaska_randArrayIndexNum = array_rand($Alaska_textArray);
$p_Alaska = $Texas_textArray[$Alaska_randArrayIndexNum];
$Arizona_randArrayIndexNum = array_rand($Arizona_textArray);
$p_Arizona = $California_textArray[$Arizona_randArrayIndexNum];
.....
Dann habe ich 50 davon:
if ($row["state"] == "california") {
$stateip = $p_California;
}
else if ($row["state"] == "texas") {
$stateip = $p_Texas;
}
else if ($row["state"] == "alabama") {
$stateip = $p_Alabama;
}
else if ($row["state"] == "alaska") {
$stateip = $p_Alaska;
}
Ich bin ziemlich sicher, dass es ein schlechter Ansatz ist. Vielleicht gibt es eine Möglichkeit, all das mit 3 Zeilen von foreach
zu tun?
'getStateContent ($ state_name) {' löst einen 'Parse-Fehler aus: Syntaxfehler, unerwarteter '{' in' und ich kann nicht verstehen, warum das passiert. – Ricardo
Ich habe die Funktion verpasst, vielleicht war das das Problem? getStateContent ist da, um Ihren Inhalt aus der Textdatei zu holen. Es wird das tun, während Sie Datensätze für jeden Zustand loopen. Vielleicht müssen Sie hier einige Korrekturen vornehmen, ich nehme an, Ihre Dateien haben den gleichen Namen wie die Zustände in der Datenbank, nur mit dem ersten Großbuchstaben. –
Das hat wie ein Zauber funktioniert, aber es gibt jetzt ein kleines Problem: 'Warnung: file_get_contents (state/.txt)' & 'Warnung: file_get_contents (state/New york.txt)'. In einigen Fällen versucht es, eine Datei ohne Namen zu laden (ich habe keine Null-Variablen) und manchmal versucht es, Zustandsdateien mit einem Leerzeichen in ihrem Namen zu laden, aber meine Zustandsvariablen sehen so aus: 'NewYork' (kein Leerzeichen) . Irgendeine Idee, wie man es repariert? – Ricardo