代码之家  ›  专栏  ›  技术社区  ›  random

如何在url+php+Joomla中编码#字符

  •  2
  • random  · 技术社区  · 15 年前

    JRequest::getVar('address') 方法。 但是如果地址值有(#)字符,则不检索#字符后面的部分。

    我知道URI是query+fragment和散列符号后面的部分的组合,被视为片段。 我尝试过使用urlencode方法,但仍然不能解决问题。

    5 回复  |  直到 15 年前
        1
  •  2
  •   Fidi    15 年前

    我想你得自己替换散列符号了。例如:

    str_replace($the_url, '#', '-');
    

    我不知道,你到底要在哪里做,因为我不知道乔姆拉是怎么做的-框架处理链接和URL。但我相信,其他人可以在这里进一步帮助。。。

        2
  •  6
  •   Michael Mior Aouidane Med Amine    15 年前

    使用有什么问题 urlencode ? 它应该取代 # 具有 %23 一切都会好起来的。你可以试试 JRequest::getVar(str_replace('#', '%23', 'address')) 这应该能起作用。你能发布一个不正确的示例URL吗

        3
  •  1
  •   sparkyspider    12 年前

    用%23替换对URL中的哈希进行编码

    http://twitter.com/home?status=I+believe+in+%23love
    

    “我相信爱情”

        4
  •  0
  •   Markus Hedlund    15 年前

    在#之后的部分永远不会发送到Apache/PHP,因此不能由PHP脚本检索。您需要做的是,对url的ADDRESS参数进行url编码。

    test.com/index.php?ADDRESS=<?= urlencode('101 Street #6 City') ?>
    

    该代码将生成以下url

    test.com/index.php?ADDRESS=101+Street+%236+City
    

    现在在这个URL上,您可以用 JRequest::getVar('ADDRESS')

        5
  •  0
  •   Martin    15 年前

    Joomla doc

    $uri = 'http://fredbloggs:itsasecret@www.example.com:8080/path/to/Joomla/index.php?task=view&id=32#anchorthis';
    $u =& JURI::getInstance( $uri );
    echo 'Fragment is ' . $u->getFragment();
    
    推荐文章