1.2k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Ich habe momentan die Schwierigkeit, dass ich durch ein einfaches \n keinen Zeilenumbruch in ein durch PHP generiertes Bild bekomme, sondern nur ein komisches Sonderzeichen.

Quelltext:
$ip = $_SERVER['REMOTE_ADDR'];
$port = $_SERVER['REMOTE_PORT'];
$host = gethostbyaddr($ip);
$datum = date("d m Y");
$zeit = date("h:i:s A");
$useragent = $_SERVER['HTTP_USER_AGENT'];
$referer = $_SERVER['HTTP_REFERER'];
$betriebssystem ="unbekannt";

//Betriebssystem ermitteln
if (strstr($useragent, "Windows 98")) $betriebssystem="Windows 98";
elseif (strstr($useragent, "NT 4.0")) $betriebssystem="Windows NT ";
elseif (strstr($useragent, "NT 5.1")) $betriebssystem="Windows XP";
elseif (strstr($useragent, "Mac")) $betriebssystem="Mac OS";
elseif (strstr($useragent, "Linux")) $betriebssystem="Linux";
elseif (strstr($useragent, "Unix")) $betriebssystem="Unix";
elseif (strstr($useragent, "NT 6.0")) $betriebssystem="Windows Vista";

$img_number = imagecreate(550,500);
$backcolor = imagecolorallocate($img_number,102,102,153);
$textcolor = imagecolorallocate($img_number,255,255,255);

imagefill($img_number,0,0,$backcolor);
$number = " IP-Adresse: $ip\n Port: $port\n Host: $host\n Betriebssystem: $betriebssystem\n Datum: $datum\n Uhrzeit: $zeit\n Useragent: $useragent\n Referer: $referer";

Imagestring($img_number,10,5,5,$number,$textcolor);

header("Content-type: image/jpeg");
imagejpeg($img_number);

3 Antworten

0 Punkte
Beantwortet von
entferne doch die alle \n's
0 Punkte
Beantwortet von supermax Experte (4.8k Punkte)
Du mußt den Zeilenumbruch selbst berechnen, das kann die Funktion imagestring() nicht.

z.B.
$zeilen = explode("\n",$number);
$y = 5;
foreach ($zeilen as $zeile) {
imagestring($img_number,10,5,$y,$zeile,$textcolor);
$y += 10;
}
0 Punkte
Beantwortet von
...