2010-05-24 84 views
3

我试图获得下面的代码,输出一个IMG标记,其中嵌入了Google Static Maps API http://code.google.com/apis/maps/documentation/staticmaps/#Imagesizes的URL ...结果是除$地址以外的所有内容都正在成功输出。 .. 我究竟做错了什么?PHP字符串编码错误

function event_map_img($echo = true){ 
    global $post; 
    $address = get_post_meta($post->ID, 'date_address', true); 
    if($echo): echo '<img src="'.'http://maps.google.com/maps/api/staticmap?center='.$address.'&zoom=14&size=700x512&maptype=roadmap&markers=color:blue|label:X|'.$address.'&sensor=false" />'; 
    else: 
     return '<img src="'.'http://maps.google.com/maps/api/staticmap?center='.$address.'&zoom=14&size=700x512&maptype=roadmap&markers=color:blue|label:X|'.$address.'&sensor=false" />'; 
    endif; 
} 
+0

什么功能get_post_meta返回?添加'var_dump(get_post_meta($ post-> ID,'date_address',true));'我有一种感觉,它没有返回任何东西(''或null) – ircmaxell 2010-05-24 20:58:35

+0

抱歉家伙date_address应该是“_date_address”,所以它完全无关:( – Brian 2010-05-24 21:04:25

回答

1

试试这个:

function event_map_img($echo = true) { 
    global $post; 
    $address = urlencode(get_post_meta($post->ID, 'date_address', true)); 
    $src = htmlspecialchars('http://maps.google.com/maps/api/staticmap?center='.$address.'&zoom=14&size=700x512&maptype=roadmap&markers=color:blue|label:X|'.$address.'&sensor=false'); 
    if ($echo) { 
     echo '<img src="'.$src.'" />'; 
    } else { 
     return '<img src="'.$src.'" />'; 
    } 
} 
+0

这个问题实际上是无关的,对于buggin'ya抱歉,但你无论如何都得到了一颗金色星星,因为你是对的...... – Brian 2010-05-24 21:03:26

0

我想你blue|label:X|后缺少&分离器$address,它应该是这样的:

'&address=' . $address