[請益] 關於getimagesize()
我在做把BBCODE中的[img]http://www.XXX.XXX/XXX.jpg[/img]
轉換成<img src="" rel="nofollow">http://www.XXX.XXX/XXX.jpg">
這本來是不難
我的做法是preg_replace('/\[img\](.*?)\[\/img\]/is','<img src="$1">', $string);
可是考慮到,想要加入長和寬的限制<img src="$1" width="$w" height="$h">
於是從php.net上看到了這個範例
function scaleimage($location, $maxw=NULL, $maxh=NULL){
$img = @getimagesize($location);
if($img){
$w = $img[0];
$h = $img[1];
$dim = array('w','h');
foreach($dim AS $val){
$max = "max{$val}";
if(${$val} > ${$max} && ${$max}){
$alt = ($val == 'w') ? 'h' : 'w';
$ratio = ${$alt} / ${$val};
${$val} = ${$max};
${$alt} = ${$val} * $ratio;
}
}
return("<img src='{$location}' alt='image' width='{$w}' height='{$h}'
/>");
}
}
於是把preg_replace的部份改成了
preg_replace('/\[img\](.*?)\[\/img\]/is',"scaleimage($1,640,480)", $string)
但是輸出的結果,都是"scaleimage(http://www.XXX.XXX/XXX.jpg,640,480)"
而沒法取到scaleimage的結果出來
是我那裏寫錯了嗎?preg_replace中的第二個參數,應該也是可以用函數的啊?
盼高手解惑,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.137.191.216
→
12/12 21:46, , 1F
12/12 21:46, 1F
→
12/12 21:47, , 2F
12/12 21:47, 2F
→
12/12 22:16, , 3F
12/12 22:16, 3F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
0
18