PHP - GD Retour a la ligne [Fermé]

Signaler
-
 gangstarhymes -
Bonjour,

Je suis en plein blocage sur un probleme qui doit être stupide en PHP.
Je prends un texte que je veux convertir en image. J'utilise donc le GD. J'ai pourtant un problème de retour à la ligne. Voici le code que j'ai créer...

Merci par avance de votre aide !

<?php

if($_GET['image'] && $_GET['text'] )
{
$i = 0 ;

$text = urldecode($_GET['text']) ;
//$text = str_replace("%0D%0A","\n",$text);
//echo str_replace("\n","<br/>",$_GET['text']);


header("Content-type: image/png"); //la ligne qui change tout !
$x = 200; //largeur de mon image en PIXELS uniquement !
$y = 200; //hauteur de mon image en PIXELS uniquement !

/* on créé l'image en vraies couleurs avec une largeur de 200 pixels et une hauteur de 200 pixels */
$image = imagecreatetruecolor($x,$y);

$color = "BEDFFE";
$rouge = hexdec(substr($color,0,2)); //conversion du canal rouge
$vert = hexdec(substr($color,2,4)); //conversion du canal vert
$bleu = hexdec(substr($color,4,6)); //conversion du canal bleu

/* on créé la couleur et on l'attribue à une variable pour ne pas la perdre */
$couleur = imagecolorallocate($image,$rouge,$vert,$bleu);
//echo $_GET['text'];
while(strpos($text,"\n"))
{

$textfinal=substr($text,0,strpos($text,"\n"));
echo substr($text,strpos($text,"\n"));
$text = substr($text,strpos($text,"\n"));


imagestring($image, 3, 5, 5+10*$i, $textfinal , $couleur); //on écrit horizontalement
$i++;
}
imagestring($image, 3, 5, 5+10*$i, $textfinal , $couleur);
imagepng($image); //renvoie une image sous format png
imagedestroy($image); //détruit l'image, libérant ainsi de la mémoire
}
else if($_GET['text'] )
{
$_GET['text'] = str_replace("\n","<br/>)",$_GET['text']);
echo "<p>'$_GET[text]'</p>";
}
else if($_GET["img"])
{
echo "<a href=\"./upload/$_GET[img]\"></a>";
}

?>

3 réponses

Messages postés
398
Date d'inscription
mercredi 3 septembre 2008
Statut
Membre
Dernière intervention
22 avril 2010
29
Salut ,

nl2br($texte); ???

Non ca ne peux pas fonctionner. Un sujet du forum répond partiellement a cette question.

En fait, le retour a la ligne ne fonctionne pas avec des "\n" ou "<br/>"

Il faut pour chaque ligne de texte mettre : imagestring($image, $police,$x, $y, $text, $couleur);

C'est pour ca que je fais les substr et les strpos... Qui ne marchent pas

HELP

Personne n'a de solutions :s Please =D
Messages postés
398
Date d'inscription
mercredi 3 septembre 2008
Statut
Membre
Dernière intervention
22 avril 2010
29
Tu as toi même donné ta réponse,
Il faut pour chaque ligne de texte mettre : imagestring($image, $police,$x, $y, $text, $couleur); 


Fait donc ça, tu découpe juste ta string avec les fonctions natives de php

C'est ce que je fais là, mais ca ne fonctionne pas =S

while(strpos($text,"\n"))
{

$textfinal=substr($text,0,strpos($text,"\n"));
echo substr($text,strpos($text,"\n"));
$text = substr($text,strpos($text,"\n"));


imagestring($image, 3, 5, 5+10*$i, $textfinal , $couleur); //on écrit horizontalement
$i++;
}