php - jQuery 和 PHP : Encode & Decode URL

标签 php javascript jquery uri urlencode

每当单击链接时,我都会通过 URL 将字符串传递到另一个页面。

原始的 a 标签及其 href 是通过 PHP while 循环创建的,如下所示:

<a href=".($row['secondary'] == 'true' ? "secondary_imgs.php?imgId=".$row['imgId']."
    &imgTitle=".$row['imgTitle']."" : "new_arrivals_img/".$row['imgURL']."").">

注意:a 标记确实包含其他属性,但为简单起见我删除了它们。

然后使用以下 jQuery 函数将当前窗口尺寸附加到 href:

$("a[href^='secondary_imgs.php']").click(function(){
    var pageWidth = $(window).width();
    var pageHeight = $(window).height();
    var url = $(this).attr('href');
    var idx = url.indexOf('&pageWidth=');
    if (idx != -1) {
        url = url.substr(0, idx);
    }
    url += '&pageWidth=' + pageWidth + '&pageHeight=' + pageHeight;
    $(this).attr('href', url);
});

我的问题是,在这种情况下我应该使用什么编码 URL 的方法,因为它需要首先使用 PHP,然后是 jQuery/JavaScript,最后通过 PHP 解码? 或者它需要在 PHP 和 jQuery/JavaScript 中完成吗?原始的 PHP $row['imgTitle']总是至少有空格,所以我知道它需要在那时完成。但是看到附加值将始终是一个等于数字的变量,是否也需要对其进行编码?

我知道每种编码语言都有几种编码/解码 URL 的方法,但我的知识不足以做出选择。

如果有人也可以提供我将如何执行每个步骤的示例,将不胜感激。

最佳答案

你应该使用 urlencode()在 PHP 中对 URI 组件进行编码。

javascript 中的等效函数是 encodeURIComponent() .

PHP 将自动解码这样编码的参数。

所以,在你的 PHP 中:

'<a href="..&imgTitle='.urlencode($row['imgTitle'])

同样,在您的 javascript 中:

'&someparam=' + encodeURIComponent(someValue)

关于php - jQuery 和 PHP : Encode & Decode URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7296499/

相关文章:

php - Magento Magmi 的 hhvm nginx toString 服务器错误

javascript - 我在 php 页面中收到空白对象 {}

javascript - 日期选择器在 Internet Explorer 中不起作用

javascript - 为什么这个 Typescript 导出未定义?

javascript - 获取元素类型的子元素

javascript - 放下三个物体后触发图像变化

php - codeigniter 无法返回多个值而不是整行(从模型到 Controller )

php - 使用 PHP 的 Google map API 查找两个位置之间的距离

Javascript 将字符串转化为kb格式

javascript - 如何用jquery计数器实现一个简单的错误