[PHP] GD Output probleem *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 21:11
Ik zit met een vreemd probleem. Op een website van mij worden h1 en h2 tags met behulp van javascript, php en GD omgezet in een plaatje.
Dit systeem heeft altijd gewerkt voor de h1 en h2 images. En om de een of andere reden werkt het nu niet meer voor de H1-images terwijl de code van de h1 en de h2-tag images 99,9% gelijk is. Het enige verschil zit hem in de grootte van het lettertype.

Voorbeeld 1: H1-image
Voorbeeld 2: H2-image


Ik gebruik de volgende code voor de h1-images
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?
ob_start();

header("Content-type: image/png");
header("Expires: Mon, 01 Jan 2010 00:00:00 GMT");
header("Last-Modified: Mon, 01 Jan 2010 00:00:00 GMT");
header("Cache-Control: store, cache");
header("Cache-Control: post-check=1, pre-check=1", false);
header("Pragma: cache");

$_GET['name'] = stripslashes($_GET['name']);

$text = urldecode($_GET['name']);
$text = str_replace("&amp;","&",$_GET['name']);

$replace = array("(",")","/","\\","@",",",".","!","&","#039;","#",";",":","?","'","\"","%");

$filename = str_replace(" ","-",$_GET['name']);
$filename = str_replace($replace,"",$filename);
$filename = "cache/h1_".$filename.".png";

$image = @imagecreatefrompng($filename);

if (!$image)
    {
    $width      = 600;
    $height     = 22;
    $image      = imagecreatetruecolor($width,$height);

    include("colors.php");
    imagefilledrectangle($image,0,0,$width,$height,$color3);
    
    imagettftext($image,15,0,0,16,$color2,$font1,$text);
    imagettftext($image,15,0,4,15,$color1,$font1,$text);

    touch($filename);
    imagepng($image,$filename);
    imagedestroy($image);
    $image = imagecreatefrompng($filename);
    }

imagepng($image);
imagedestroy($image);


Wie kan me vertellen wat er fout gaat?

- Als ik de headers weghaal zie ik het volgende
code:
1
2
&#8240;PNG  IHDRX*àq²h IDATxœíÝiHaðÇu·uu]Á³ò(\5-&frac14;&#8217;ÌMË ·D"&#710;R&#8218;èKH
ETC ETC ETC

- de map cache/ is gechmod naar 777


[oops]
Titel vergeten
[/oops]

Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Die &#8240; aan het begin lijkt daar niet te horen. Haal die eens uit je PHP file :)

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 21:11
Nah, hoe miraculeus kan dit nou zijn. hij werkt weer.
K had een <tab> voor <? op line 1

Acties:
  • 0 Henk 'm!

  • Technicality
  • Registratie: Juni 2004
  • Laatst online: 21-09 13:07

Technicality

Vliegt rechtsom...

partypas schreef op dinsdag 03 oktober 2006 @ 21:18:
Nah, hoe miraculeus kan dit nou zijn. hij werkt weer.
K had een <tab> voor <? op line 1
Niets miraculeus aan imo ;)
Post dan ook even waarom dat zo is. Dit voegt niets toe aan het topic...

[ Voor 15% gewijzigd door RobIII op 03-10-2006 22:26 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
partypas schreef op dinsdag 03 oktober 2006 @ 21:18:
Nah, hoe miraculeus kan dit nou zijn. hij werkt weer.
K had een <tab> voor <? op line 1
Erg miraculeus is het niet; de tab wordt ge-output en daarna de binary data die GD uitspuugt. En tja, dan is "tab+binarydata" toch echt iets anders dan "binarydata" en hence een invalid PNG file ;)
Wel een leuke trouwens, dit soort dingen kun je (idd) soms uren naar zoeken en dan blijkt het zoiets simpels te zijn :D

[ Voor 13% gewijzigd door RobIII op 03-10-2006 22:28 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Het is allemaal zo miraculeus dat ik het een jaar geleden al in een FAQ verwerkt heb. ;)
Programming FAQ - Image manipulation in PHP

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Ik gebruik altijd dit om voor altijd van dit gedoe af te zijn:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
// start scipt (alleen bufferen als die nog leeg is: 
$ob = !ob_get_contents() ? ob_start() : 0;
//
// hier image knutselen
//
// alleen plaatje tonen als de buffer nog steeds leeg is.
if(!ob_get_contents()) {
    header("Content-type: image/jpeg");
    imagejpeg($image);
}
else {
    ob_end_flush();
}
?>

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Zo komt die troep die anders voor de headers afgedrukt wordt alsnog afgedrukt lijkt me? :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1