这可能看起来很奇怪,但我只想把网址放在一起。 我使用strrpos()获得用户输入的第一部分($ first)和带有“/”的substr()。 我想要的确切文件是固定的($秒)所以我认为我需要做的就是:
$first = "http://www.somedomain.de/somepath/";
$second = "thexml.xml";
$url = $first.$second;
但是:虽然我在每个部分都使用了trim(),但是当我打印$ url时,两个部分之间仍然有一些空白。
当我尝试导航到$ url时,空格被替换为“%”。 当我在浏览器的地址栏中手动删除空白/%时,路径本身是正确的。
我也尝试将两个字符串与数组和implode()放在一起,但输出保持不变。 我做错了什么?
从Lisa更新
好的,所以我分别打印$ first和$ second,没有空格。当我将它们连接起来并确切地将两个字符串组合在一起时,它似乎正在出现。还有其他想法吗?
还有其他想法吗?
答案 0 :(得分:0)
最有可能的是,您正在编辑的代码或输入(用户,数据库等)不是您所期望的。尝试将代码缩减(没有双关语)到最小的例子。例如,从
开始$first = "http://www.somedomain.de/somepath/";
$second = "thexml.xml";
$url = $first.$second;
echo $url; // No space
到
$first = $_POST['url'];
$second = "thexml.xml";
$url = $first.$second;
echo $url; // If this contains a space, the input contains the offending space
一步一步找到错误。
答案 1 :(得分:0)
你试过rawurlencode
吗? http://php.net/rawurlencode
答案 2 :(得分:0)
我知道这是一个非常古老的问题,但我遇到了类似的问题,终于找到了解决方案。
我的解决方案是使用这样的trim函数:
$url = trim($first).$second;