/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
mellemrum i stedet for +
Fra : Torben Rasmussen


Dato : 10-12-04 07:57

hej allesammen

Jeg har downloadet et script fra hotscript.com

det laver et billede udfra en textstreg, men mit problem er at
man skal skrive et + for at få mellemrum i teksten, kan man ikke
lave det sårn at skrive FX "jeg er glad" UDEN at skulle skrive +
tegnet imellem?

kilden herunder er selve kernen om man vil der er også en inc
fil, men den har jeg ikke taget med da den ikke er relavant



<?php
include("text_config.inc.php");

if(isset($PATH_INFO) && $usekinkyurl == "1"){

$vardata = explode('/', $PATH_INFO);

$num_param = count($vardata);

if($num_param % 2 == 0){

$vardata[] = '';
$num_param++;
}

for($i = 1; $i < $num_param; $i += 2){

$$vardata[$i] = $vardata[$i + 1];
}
$text = urldecode($text);
}else{
$text = urldecode($_GET['text']);
$s = $_GET['s'];
}

if(empty($s) || !is_numeric($s)){
$s = $sizedefault;
}else{
if($s < $sizemin){
$s = $sizemin;
}

if($s > $sizemax){
$s = $sizemax;
}
}
if(empty($text)){
$text = $text_default;
}
/**
* hex2dec()
*
* @param string $hex Hexadecimal color
* @return array array('r','g','b')
*/
function hex2dec($hex){
$color = str_replace('#', '', $hex);
$ret = array(
'r' => hexdec(substr($color, 0, 2)),
'g' => hexdec(substr($color, 2, 2)),
'b' => hexdec(substr($color, 4, 2))
);
return $ret;
}

if($usecache == 1){
$cachestring = md5("$$bg_color|$text_color|$text|$font|$s");
$imcache = @ImageCreateFromPNG
("$cachefolder$cachestring.png");
if($imcache){
ImagePNG($imcache);
}else{
Header("Content-type: image/png");
$size = imagettfbbox($s, 0, $font, $text);
$dx = abs($size[2] - $size[0]);
$dy = abs($size[5] - $size[3]);
$xpad = 9;
$ypad = 9;
$im = imagecreate($dx + $xpad, $dy + $ypad);
$bgc = hex2dec($bg_color);
$bg = ImageColorAllocate($im, $bgc['r'], $bgc['g'],
$bgc['b']);
$mac = hex2dec($text_color);
$main = ImageColorAllocate($im, $mac['r'], $mac['g'],
$mac['b']);
ImageTTFText($im, $s, 0, (int)($xpad / 2), $dy +
(int)($ypad / 2)-1, $main, $font, $text);
ImagePng($im, "$cachefolder$cachestring.png");
$imcache = @ImageCreateFromPNG
("$cachefolder$cachestring.png");
ImagePNG($imcache);
}
}else{

Header("Content-type: image/png");
$size = imagettfbbox($s, 0, $font, $text);
$dx = abs($size[2] - $size[0]);
$dy = abs($size[5] - $size[3]);
$xpad = 9;
$ypad = 9;
$im = imagecreate($dx + $xpad, $dy + $ypad);
$bgc = hex2dec($bg_color);
$bg = ImageColorAllocate($im, $bgc['r'], $bgc['g'],
$bgc['b']);
$mac = hex2dec($text_color);
$main = ImageColorAllocate($im, $mac['r'], $mac['g'],
$mac['b']);
ImageTTFText($im, $s, 0, (int)($xpad / 2), $dy + (int)($ypad
/ 2)-1, $main, $font, $text);
ImagePng($im);
ImageDestroy($im);
}
?>



Håber der er nogle der kan hjælpe

Torben

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Thomas Lindgaard (10-12-2004)
Kommentar
Fra : Thomas Lindgaard


Dato : 10-12-04 09:58

On Fri, 10 Dec 2004 06:56:54 +0000, Torben Rasmussen wrote:

> det laver et billede udfra en textstreg, men mit problem er at
> man skal skrive et + for at få mellemrum i teksten, kan man ikke
> lave det sårn at skrive FX "jeg er glad" UDEN at skulle skrive +
> tegnet imellem?

Jeg har ikke nærlæst koden, men en hurtig skimning peger i retning af,
at den streng, der konverteres til et billede, bliver givet med i adressen:

lavBillede.php?text=prutter+lugter

Dvs. at der skal benyttes + i stedet for mellemrum, da strengen skal være
url-encoded. Men du kan i stedet gøre:

$billede = 'lavBillede.php?text='.urlencode('prutter lugter');

Så vil $billede indeholde strengen "lavBillede.php?text=prutter+lugter".

--
Mvh.
/Thomas


Erik Ginnerskov (10-12-2004)
Kommentar
Fra : Erik Ginnerskov


Dato : 10-12-04 09:59

Torben Rasmussen wrote:

> Jeg har downloadet et script fra hotscript.com
>
> det laver et billede udfra en textstreg, men mit problem er at
> man skal skrive et + for at få mellemrum i teksten, kan man ikke
> lave det sårn at skrive FX "jeg er glad" UDEN at skulle skrive +
> tegnet imellem?

$text = str_replace('+',' ');

Kan den her gøre det?

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste