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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | function calculateTextBox($text, $fontFile, $fontSize, $fontAngle) { $rect = imagettfbbox($fontSize, $fontAngle, $fontFile, $text); $minX = min(array($rect[0], $rect[2], $rect[4], $rect[6])); $maxX = max(array($rect[0], $rect[2], $rect[4], $rect[6])); $minY = min(array($rect[1], $rect[3], $rect[5], $rect[7])); $maxY = max(array($rect[1], $rect[3], $rect[5], $rect[7])); return array("left" => abs($minX), "top" => abs($minY), "width" => $maxX - $minX, "height" => $maxY - $minY, "box" => $rect); } putenv('GDFONTPATH=' . realpath('.')); $im = imagecreatetruecolor(721, 241); $color = imageColorAllocate($im, 0, 0, 0); $back = imagecolorallocate($im, 255, 255, 255); imagefill($im, 0, 0, $back); // lines for ($x = 0; $x < 4; $x++) { imageline($im, 0, $x * 80, 721, ($x * 80), $color); } for ($x = 0; $x < 11; $x++) { imageline($im, $x * 80, 1, $x * 80, 241, $color); } $fontsize = 40; $font = 'test2.ttf'; $x = 0; $y = 0; foreach (range("a", "z") AS $id => $key) { $bbox = calculateTextBox($key, $font, $fontsize, 0); imagettftext ($im, 12, 0, $x + 3, $y + 14, $color, "standard.ttf", $key); imagettftext ($im, $fontsize, 0, $x + (80/2 - $bbox['width']/2), $y + (80 - ($bbox['height']/2)), $color, $font, $key); $x = $x + 80; if ($x > 700) { $x = 0; $y = $y + 80; } } header('Content-Type: image/png'); imagePNG($im); ?> |
1 2 3 4 5 6 | $im = imagecreatetruecolor(721, 241); for ($x = 0; $x < 11; $x++) { imageline($im, $x * 80, 1, $x * 80, 241, $color); } ?> |
1 2 3 4 | $x + (80/2 - $bbox['width']/2), $y + (80 - ($bbox['height']/2)), ?> |
Dan valt de lijn buiten de afbeeldingquote:
En dat snap ik niet helemaal, hoe kan ik de letters dan wel netjes naast elkaar krijgen? of is dit in jou opinie mooi genoeg?quote:Dat moet je niet doen. Zoals je kunt lezen: "the coordinates given by x and y will define the basepoint of the first character". Wil je ze netjes naast elkaar hebben, moet je dit dus niet van het karakter afhankelijk maken.
Door ze allemaal op dezelfde baseline te zetten. Dan staan ze netjes recht. Als je ze allemaal een ander basepoint geeft (zoals je nu doet), staan ze allemaal op een andere hoogte.quote:Op zaterdag 14 februari 2009 09:55 schreef Chandler het volgende:
[..]
hoe kan ik de letters dan wel netjes naast elkaar krijgen?
ah jaquote:Op zondag 15 februari 2009 19:59 schreef GlowMouse het volgende:
Als ze allemaal even groot zijn, $i van 0 t/m grootte-1 laten lopen, en dan $_POST['var'][$i] gebruiken.
heb ik op de vorige pagina ook fout gedaanquote:Op zondag 15 februari 2009 20:15 schreef GlowMouse het volgende:
De juiste spelling is waarschijnlijk ook 'besteld'.
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 | { //verbinden met de server include("content/connect.php"); // tijd nu noteren $tijd = date("Y-m-d H:i:s"); // post dumpen en sessie om te kijken of ik nog iets mis.(over het hoofd zie) echo var_dump($_SESSION)."<br/><br/<br/>"; echo var_dump($_POST)."<br/><br/><br/>"; //werkt <img class="rde_img_smiley" src="http://i.fok.nl/s/smile.gif" width="15" height="15" alt="" /> $sql1 ="INSERT INTO verkooporder (klant_nr,besteldatum) VALUES ('".$_SESSION['klant_nr']."','".$tijd."')"; mysql_query($sql1) or( die()); //laatste vo_nr ophalen werkt het ophalen maar uitlezen niet. $sql3 ="SELECT vo_nr FROM verkooporder ORDER BY vo_nr DESC limit 1"; $test = mysql_query($sql3) or( die()); echo "<br/>Test:".$test['vo_nr']; echo var_dump($test); $test2 = mysql_fetch_assoc($test); echo $test2['vo_nr']; $p = count($_POST['artikel_nr']); for($i = 0; $i < $p; $i++) { $sql2 ="INSERT INTO verkooporderregel(vo_nr,art_nr,besteld,geleverd,vraagprijs) VALUES ('".$test2."','".$_POST['artikel_nr'][$i]."','".$_POST['besteld'][$i]."','0','".$_POST['prijs'][$i]."')"; mysql_query($sql2) or(die()); $sql4 = "UPDATE artikel SET voorverkopen = voorverkopen + ".$_POST['besteld'][$i].", tech_voorraad = tech_voorraad - ".$_POST['besteld'][$i]." WHERE art_nr = '".$_POST['artikel_nr'][$i]."'"; mysql_query($sql4) or(die()); } } ?> |
ik kwam eruit mysql assocquote:Op zondag 15 februari 2009 21:33 schreef GlowMouse het volgende:
*wordt aangemaakt
mysql_query geeft geen array terug, kijk eens op http://www.php.net/mysql
quote:Als ik USE index_naam in de query gebruik die de data uit de tijdelijke tabel haalt dan krijg ik geen resultaten terug.
Ik gebruik de tijdelijke tabel voor een query die later in het script uitgevoerd wordt, ik hoef dan niet de hele DB van een paar gig te doorzoeken, alleen de data in de tijdelijke tabel. Per week komen er ongeveer 100.000 records bij, en ik ben bang dat ik op lange termijn performance problemen krijg als ik geen gebruik maak van de tijdelijke tabel. Gezien de tijdelijke tabel alleen de data van 2 week bevat +/- 200.000 records zou dat imo sneller moeten zijn.quote:Op maandag 16 februari 2009 19:41 schreef GlowMouse het volgende:
Heb je zoveel records per week dat een index nodig is? Kun je niet gewoon de hoofdtabel gebruiken met die jaar/week in je WHERE? Zolang je index met die twee velden begint, zou dat de snelste oplossing zijn mits je queries herschreven kunnen worden zodat ze niet van de temporary table gebruik hoeven maken.
Klopt, ik heb het hier niet helemaal goed vermeld, de query klopt wel. Ik heb USE INDEX toegepast om er zeker van te zijn dat de index ook gebruikt wordt, maar blijkbaar kan een tijdelijke tabel geen gebruik maken van indexen die al aangemaakt zijn, alleen indexen die aangemaakt zijn bij het vullen van de tijdelijke tabel.quote:[..]syntax is FROM table USE INDEX (indexnaam) of FORCE INDEX (indexnaam), maar dan moet die index wel bestaan. Meestal heb je USE INDEX niet nodig omdat MySQLs query optimizer het al goed doet.
Voor zover queries van indices gebruik kunnen maken, hoef je je over grote tabellen geen zorgen te maken zolang de index in het geheugen past (en key_buffer_size voldoende groot is).quote:Op maandag 16 februari 2009 20:19 schreef The_Terminator het volgende:
[..]
Ik gebruik de tijdelijke tabel voor een query die later in het script uitgevoerd wordt, ik hoef dan niet de hele DB van een paar gig te doorzoeken, alleen de data in de tijdelijke tabel. Per week komen er ongeveer 100.000 records bij, en ik ben bang dat ik op lange termijn performance problemen krijg als ik geen gebruik maak van de tijdelijke tabel. Gezien de tijdelijke tabel alleen de data van 2 week bevat +/- 200.000 records zou dat imo sneller moeten zijn.
'CREATE TEMPORARY TABLE' gaat het omquote:Op maandag 16 februari 2009 20:33 schreef GlowMouse het volgende:
Maar gaat het nu om een tijdelijke tabel (die weggaat zodra je MySQLsessie voorbij is) of een tabel met tijdelijke data?
Ik zou even wachten op wanneer CSS3 wordt ondersteunt door de meeste browsers dan kun je gewoon die font neurpleuren op je server en wordt die gedownload door de browser ofzo iets dergelijks... iig externe fonts worde ondersteunt in de toekomst.quote:Op vrijdag 13 februari 2009 23:22 schreef Chandler het volgende:
Ik wil graag comments op mijn kleine stukje image bouwen.
Ik wil namelijk fonts op de juiste manier op de juiste plek laten zien.
[ link | afbeelding ]
[ link | afbeelding ]
gemaakt door de volgende code
[ code verwijderd ]
Alleen vind ik het op een of andere manier net zo dat de letters net niet goed staan ofzoiets... comments?
"Even" wachten?quote:Op maandag 16 februari 2009 23:34 schreef iBolt het volgende:
Ik zou even wachten op wanneer CSS3 wordt ondersteunt door de meeste browsers dan kun je gewoon die font neurpleuren op je server en wordt die gedownload door de browser ofzo iets dergelijks... iig externe fonts worde ondersteunt in de toekomst.
ik vond het een waardeloos boekquote:Op maandag 16 februari 2009 21:08 schreef Biefstuk het volgende:
Is dat PHP en MySQL voor dummies boek iets?
Ben van plan om php te leren of in ieder geval weten toe te passen.
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | <table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin-top:10px;"> <tr> <td width="50%" align="left" valign="top"> <!-- --> <table cellpadding="0" cellspacing="0" border="0" class="addressItem"> <tr> <th>Adres</th> <td>Hoofdstraat 1</td> </tr> <tr> <th>Postcode</th> <td>0000 AA</td> </tr> <tr> <th>Plaats</th> <td>Woonplaats</td> </tr> <tr> <th>Provincie</th> <td>Provincie</td> </tr> <tr> <th>Land</th> <td>Land</td> </tr> </table> <!-- --> </td> <td width="50%" align="right" valign="top"> <!-- --> <table cellpadding="0" cellspacing="0" border="0" class="addressItem"> <tr> <th>Contactpersoon</th> <td>Persoon</td> </tr> <tr> <th>Telefoon</th> <td>0000-000000</td> </tr> <tr> <th>Fax</th> <td></td> </tr> <tr> <th>E-mail</th> <td><a href="mailto:email@email.com">email@email.com</a> </td> </tr> <tr> <th>Website</th> <td><a href="http://www.url.com" target="_blank">www.url.com</a></td> </tr> </table> <!-- --> </td> </tr> </table> |
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | $match = '!<h2 class="Kop2">([^/].*)<\/h2> <table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin-top:10px;"> <tr> <td width="50%" align="left" valign="top"> <\!-- --> <table cellpadding="0" cellspacing="0" border="0" class="addressItem"> <tr> <th>([^/].*)<\/th> <td>([^/].*)<\/td> <\/tr> <tr> <th>([^/].*)<\/th> <td>([^/].*)<\/td> <\/tr> <tr> <th>([^/].*)<\/th> <td>([^/].*)<\/td> <\/tr> <tr> <th>([^/].*)<\/th> <td>([^/].*)<\/td> <\/tr> <tr> <th>([^/].*)<\/th> <td>([^/].*)<\/td> <\/tr> <\/table> <\!-- --> <\/td> <td width="50%" align="right" valign="top"> <\!-- --> <table cellpadding="0" cellspacing="0" border="0" class="addressItem"> <tr> <th>([^/].*)<\/th> <td>([^/].*)<\/td> <\/tr> <tr> <th>([^/].*)<\/th> <td>([^/].*)<\/td> <\/tr> <tr> <th>([^/].*)<\/th> <td>([^/].*)<\/td> <\/tr> <tr> <th>([^/].*)<\/th> <td><a href="mailto:">([^/].*)<\/a> <\/td> <\/tr> <tr> <th>([^/].*)<\/th> <td><a href="" target="_blank">([^/].*)<\/a><\/td> <\/tr> <\/table> <\!-- --> <\/td> <\/tr> <\/table>!im'; ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |