PHP用url友好文本替换hashtag

时间:2012-06-26 02:22:04

标签: php hashtag pinterest

我正在使用PHP版本的Pinterest Pin It按钮,我遇到了网址“描述”部分的问题...

我正在使用php生成网址:

$pinurl = 'http://foo.com';
$pinmedia = 'http://foo.com/picture.jpg';
$pindesc = 'my description with #hashtag';

$pin = 'http://pinterest.com/pin/create/button/?url='.$pinurl.'&media='.$pinmedia.'&description='.$pindesc.'';

echo '<a href="'.$pin.'" class="pin-it-button" count-layout="none" target="_blank">Pin It!</a>';

我遇到的问题是当我的$ pindesc变量中有一个标签或只有一个#标签时,Pinterest不会从网址中读取它,因为它看起来像:

http://pinterest.com/pin/create/button/?url=http://foo.com&media=http://foo.com/foo.jpg&description=#foo

很明显,#foo没有被读作描述......

我想知道是否有某种工作或是否可以使用“if”语句来运行我的$ pindesc变量来检查和替换带有“url friendly”的“%23”的主题标签

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用urlencode转换脚本中任何棘手的字符:

$pindesc = urlencode('my description with #hashtag');

答案 1 :(得分:1)

使用rawurlencode

$pin = 'http://pinterest.com/pin/create/button/?url='.rawurlencode($pinurl).'&media='.rawurlencode$pinmedia).'&description='.rawurlencode($pindesc).'';

这将对除-_。〜(RFC 3986)

以外的所有字符进行URL编码