php file_get_contents auf die lokale Datei über http
<?php
error_reporting(E_ALL);
if(file_get_contents("http://localhost/antispam/img.php") == false)
print 'Error';
else
print 'Read successfully';
?>
Immer diese Drucke error
. img.php
gibt ein php-generiertes Bild in Ordnung, aber nicht gelesen werden kann, indem der obige code. Mein php.ini scheint typisch und es werden keine Fehler angezeigt, was bin ich?
Hinweis allow_url_fopen
bereits auf On
und 1
img.php
$code = 'default';
header("Content-Type: image/jpeg");
$im = @imagecreate(200, 50) or die ("Cannot Initialize new GD image stream");
$bgColour = imagecolorallocate($im, 0, 0, 0);
$textColour = imagecolorallocate($im, 233, 14, 91);
$wSpace = 30; $hSpace = 20;
$prevW = 0;
for($i = 0; $i < strlen($code); $i++)
{
$w = $prevW + rand(20, $wSpace);
imagestring($im, 5, $w, rand(0,$hSpace), substr($code, $i, 1), $textColour);
$prevW = $w;
}
imagejpeg($im);
imagedestroy($im);
@Raina77ow sagte, können Sie nicht auf über
ich habe schon überprüft, meine php.ini und alles scheint in Ordnung. Die Datei ist lokal wie auch in es ist im selben dir wie die Datei, aber ich verstehen Sie Ihren Punkt.
Verwenden Sie die cUrl-Funktionen.
Was passiert, wenn Sie es ändern, um
Warten, wenn
http
es sei denn allow_url_fopen
eingestellt ist. Die andere option ist, um den Zugriff auf die Datei über eine lokale Datei-Pfad, etwas entlang der Linien von /var/www/antispam/img.php
oder wie auch immer der Pfad auf Ihrem server.ich habe schon überprüft, meine php.ini und alles scheint in Ordnung. Die Datei ist lokal wie auch in es ist im selben dir wie die Datei, aber ich verstehen Sie Ihren Punkt.
Verwenden Sie die cUrl-Funktionen.
Was passiert, wenn Sie es ändern, um
file_get_contents("http://localhost/antispam/img.php") === false)...
Warten, wenn
=== false
zurück false
, dann ist die Funktion arbeiten, es ist einfach zu Lesen, nichts von der Seite. Sind Sie sicher, dass img.php
richtig schafft das Bild?InformationsquelleAutor Lee | 2012-11-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie Ihre php.ini: allow_url_fopen aktiviert werden muss, für die URL öffnen.
Sie nicht brauchen, der URL-Wrapper, wenn die Datei auf localhost. Geben Sie einfach den Pfad im Dateisystem.
Die Datei muss dann gelesen werden, indem der Benutzer, unter dem php ausgeführt wird (normalerweise apache-Benutzer bei der Verwendung von mod_php, oder
der php-Prozess im Falle von (f)cgi, fpm...)
allow_url_fopen
ist bereits richtig eingestellt.Versuchen Sie es mit dem Pfad anstelle der URL. Die Datei befindet sich in Ihrem Dokument-root /antispam/, so dass Sie nicht brauchen, der URL-Zugriff. Überprüfen Sie die Datei-Berechtigungen ein chmod 755 auf img.php für Tests.
Warum sollte der OP verwenden müssen
file_get_contents
statt nurrequire
-ing die lokale Datei, wie denken Sie?erfordern-ing das Bild? ich weiß nicht, was der op versucht zu erreichen, aber ich denke, es es nicht nur um die überprüfung für die Datei-Existenz. wenn dem so ist, benötigen, wäre auch ein bisschen seltsam.
Vielen Dank, es hat funktioniert!!!. nicht nur file_get_contents, aber auch wp_remote_get in wordpress
InformationsquelleAutor Sebastian Keßler