PHP gethostbyname() Rückgabe von Name anstelle von IP, wenn der Name als Variable und nicht als String-Literal übergeben wirdPHP gethostbyname() Rückgabe von Name anstelle von IP, wenn der Name als Variable statt als Zeichenfolgenliteral übergeben wird
Ich habe ähnliche Probleme mit einigen wertvollen Diskussion gesehen, aber nichts, dass dies weiter geht.
Wenn ich eine Variable say $ domain an gethostbyname() übergeben, wobei $ domain der von einer foreach-Schleife erzeugte String-Wert ist, ist der Rückgabewert immer genau das, was ich hineinlege - zum Beispiel wenn $ domain == "google.com" ist der Rückgabewert google.com. Beim Aufruf der gleichen Funktion gethostbyname() mit einem String-Literal bekomme ich die IP-Adresse. gethostbyname ('google.com')
Ist das ein bekannter Fehler? Gibt es eine Problemumgehung? Ich werde für jede Hilfe dankbar sein.
Danke
Dieser Code schlägt fehl - für ein Ergebnis den Wert von $ url Herstellung:
foreach ($this->domainNames as $url){
$ips[]=gethostbyname($url);
}
Der zweite Satz von Code gibt die richtige IP-Adresse zweimal (einmal für jeden Wert in $ this-> Domain:
foreach ($this->domainNames as $url){
$ips[]=gethostbyname('google.com');
}
LÖSUNG: Es stellte sich heraus, einige einige schlampig Räume in meinem varible verursacht werden, die Trimmung festgelegt wurden unter Verwendung bei der Erstellung von Meine $ this-> domainNames-Array-Werte.
Bitte geben Sie spezifischen Code, wo dieses Problem auftritt. Ich habe es versucht und es gibt mir die IP-Adresse zurück, nicht der Name .. – Laurens
Da wir nicht wissen, was in $ this-> domainNames ist, können wir Ihnen immer noch nicht helfen. Bitte stellen Sie auch einen Dump von $ this-> domainNames bereit, indem Sie eine 'var_dump ($ this-> domainNames);' – Laurens
Laurens $ this-domainName im Moment in ein Array mit zwei Strings "google.com" entfernt wurde - Wenn ich die genauen Werte (Ausschneiden und Einfügen) in die Funktion eintrage, bekomme ich IP-Adressen. Wenn ich die Variablen aus dem Foreachloop trage, bekomme ich die Daten, die ich eingegeben habe (es sei denn, ich gebe einen ungültigen Domainnamen ein) –