处理 PHP/JavaScript 中带有特殊字符的 URL


Handling URL with special characters in PHP/JavaScript

我有如下所示的 URL:

http://www.myServer.net/Posters/CU_Pete'sChristmas_PP.png

现在这是

{
                    'title'         : 'Pete''s Christmas',
                    'description'   : 'A light-hearted holiday tale that even adults will enjoy. A young boy has the worst Christmas ever and soon realises that he’s doomed to repeat the same day over and over again.',
                    'thumbnail'     : ['http://www.myServer.net/Posters/CU_Pete'sChristmas_PP.png'],
                    'large'         : ['http://www.myServer.net/Posters/CU_Pete'sChristmas_PP.png'],
                    'button_list'   :
                    [
                        { 'title':'Demo', 'url' : 'index.php', 'new_window' : true }
                    ],
                    'tags'          : ['Movies']
                }

所以问题是 Url 包含特殊字符 ('),这显然不允许我的 java 脚本正确。

因此,脚本未按预期执行。

这是我的javaScrit数组生成器

$javascript = array();
$count = sizeof($vodAssetArray);
for ($i = 0; $i < $count; $i++)
{
    $pieces = explode("/", $vodAssetArray[$i]->genre);
    $javascript[] = "
                {
                    'title'         : '" . addslashes($vodAssetArray[$i]->title) . "',
                    'description'   : '" . addslashes($vodAssetArray[$i]->description) . "',
                    'thumbnail'     : ['" . ($vodAssetArray[$i]->posterUrl) . "'],
                    'large'         : ['" . ($vodAssetArray[$i]->posterUrl) . "'],
                    'button_list'   :
                    [
                        { 'title':'Demo', 'url' : 'index.php', 'new_window' : true }
                    ],
                    'tags'          : ['" . $pieces[0] . "']
                }";
}

我尝试使用urlencode,rawurlencode json_encode,但仍然没有下载图像。

<script type="text/javascript">
    $(function(){
        $("#demo").grid({
            'genre' : 'All',
            'items' :
                [
                    <?php echo implode(',', $javascript); ?>
                ]
        });
    });
</script>  

请帮我解决这个问题。

URL 中的所有撇号替换为 %27。