Jump to content

[SOLVED] imagettftext + for loop


mrbuter

Recommended Posts

Hi again!

 

I'm making what I thought would be (and probably is but I'm not able to do it :P) a simple forum signature for someone using imagettftext in php. It's a shoutbox type thing where people can go to a webpage and enter their nick and comment and it'll add it into a database. Then I have the image.php file connect to the database and read the stuff from there.

 

But alas I have a problem!

 

see here:

 

it works like so

 

$text1 = blablabla
$text2 = blablabla2

(etc.)

 

then:

imagettftext($im, 10, 0, 150, 70, $black, $font, $text);
imagettftext($im, 10, 0, 40, 110, $black, $font, $text2);

 

 

I have text1 set to a nondynamic thing so that works fine. I made $text2 into:

 

$text2 = for($x=0;$x<$nbr_rangees;$x++){
"" . mysql_result($results_text,$x,"nick") . ":  " . mysql_result($results_text,$x,"comment") . "\n"; 
}

 

And I get..

 

Parse error: syntax error, unexpected T_FOR in /.../image.php on line 39

 

so what gives?

 

I guess you cant use a for loop there? But then what can I use to get the same results?

 

 

Thank you!

Link to comment
Share on other sites

I suppose I could put the $text2 IN the for loop but that gets more complicated right? Because I can't have multiple $text2s. It would have to increment into like $text2 $text3 $text4 depending how many lines there are/fit. But I don't know how to do that :(

Link to comment
Share on other sites

Make an array inside the for loop.  You can't use a for loop in the current way you have it.  And I'd personally cache the images after you make them so your server doesn't explode (not really "explode"...but it'll load kind of slowly when calling images).

Link to comment
Share on other sites

make an array inside the for loop.

 

Never done this before.

 

Something like this?

 

for($x=0;$x<$nbr_rangees;$x++){
$text["2"+i] = "" . mysql_result($results_text,$x,"nick") . ":  " . mysql_result($results_text,$x,"comment") . "\n"; 
}

 

But then

 

I'd also need to put the imagettftext($im, 10, 0, 40, 110, $black, $font, $text2);

line into a loop as well right?

 

 

I'm sure I just completely butchered what an array in a for loop even is.

Link to comment
Share on other sites

$text2[] = "" . mysql_result($results_text,$x,"nick") . ":  " . mysql_result($results_text,$x,"comment") . "\n";

 

 

Then you could use a foreach to go through it later.

foreach ($text2 as $inputtext) {

imagettftext($im, 10, 0, 40, 110, $black, $font, $inputtext);

}

Link to comment
Share on other sites

Oh I see...alright. That worked but how can I get the 110 to increment by 20 each time?

 

I played around with it for a bit trying different things and if it didn't error out it would just move all of them (and they'd overlap).

 

Thanks again DarkWater.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.