PHP - GD Retour a la ligne

Fermé
gangstarhymes - 19 avril 2010 à 13:28
 gangstarhymes - 21 avril 2010 à 12:10
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

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

nl2br($texte); ???
0
gangstarhymes
19 avril 2010 à 18:20
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
0
gangstarhymes
21 avril 2010 à 11:13
Personne n'a de solutions :s Please =D
0
webmaster09 Messages postés 398 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 22 avril 2010 29
21 avril 2010 à 11:55
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
0
gangstarhymes
21 avril 2010 à 12:10
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++;
}
0