将 file_get_contents 与 $_GET 结合使用时出现问题。例如,我正在尝试使用 file_get_contents 加载以下页面:
https://bing.com/?q=how+to+tie+a+tie
如果我像这样加载它,页面加载正常:
http://localhost/load1.php
<?
echo file_get_contents("https://bing.com/?q=how+to+tie+a+tie");
?>
但是,当我像这样加载它时,我遇到了问题:
http://localhost/load2.php?url=https://bing.com/?q=how+to+tie+a+tie
<?
$enteredurl = $_GET["url"];
$page = file_get_contents($enteredurl);
echo $page;
?>
当我使用第二种方法加载时,我得到一个空白页。检查页面源不返回任何内容。当我回显 $enteredurl 时,我得到“https://bing.com/?q=how to tie a tie”。似乎“+”号消失了。
此外,加载http://localhost/load2.php?url=https://bing.com/?q=how工作正常。网页出现。
任何人都知道可能导致问题的原因是什么?
谢谢!
更新
尝试使用 urlencode() 来实现这一点。我有一个带有输入和提交字段的标准表单:
<form name="search" action="load2.php" method="post">
<input type="text" name="search" />
<input type="submit" value="Go!" />
</form>
然后更新 load2.php URL:
<?
$enteredurl = $_GET["url"];
$search = urlencode($_POST["search"]);
if(!empty($search)) {
echo '<script type="text/javascript">window.location="load2.php?url=https://bing.com/?q='.$search.'";</script>';
}
?>
代码在这里的某个地方被破坏了。$enteredurl 仍然返回与以前相同的值。(https://bing.com/?q=如何打领带)