空格出现在HTML文件的file_get_contents之后

时间:2013-10-19 00:29:28

标签: javascript php

我有两个文件:script.html和index.php。

我的目的是通过JavaScript在HTML文件中生成文本(在本例中为用户的国家/地区)。这是此HTML文件的代码:

  

script.html

<script language="Javascript" src="http://www.codehelper.io/api/ips/?js"></script>
<script language="Javascript">document.write(codehelper_ip.Country);</script>

现在,我想将该文本带到PHP文件中以将其用作变量:

  

的index.php

<?php
$content = file_get_contents(script.html);
echo "http://www.example.com/$content/example"
?>

问题 echo 的输出是奇数:

  

回声输出:

http://www.example.com/ US /example

注意“US”之前和之后的空格。当然,这会破坏代码的整个目的。我不能拥有那样的网址。

我可以避免或删除这些空格吗?

为什么会这样?

我的猜测:由于JavaScript代码的换行符,正在插入这些空格。如果我不在一个<script></script>和另一个<script></script>之间放置任何换行符(例如<script language="Javascript" src="http://www.codehelper.io/api/ips/?js"></script><script language="Javascript">document.write(codehelper_ip.Country);</script>,在一行中),那么我得到http://www.example.com/US /example。不过,我不知道如何避免这个空间。

注1:我已经尝试过 trim()(我使用PHP 5+以便它可以工作)。我也尝试将文件扩展名“.html”更改为“.php”以防万一它会做某事,但事实并非如此。

注2:即使我知道我可以通过其他方式实现,但我希望通过JavaScript而不是通过PHP来获取用户所在的国家/地区。原因是我无法通过服务器使用我当前的主机方案来实现,所以我想到了JavaScript。

非常感谢。

1 个答案:

答案 0 :(得分:2)

我认为你在处理各种脚本时感到困惑。

$content = file_get_contents(script.html);

此时,$content包含<script>标记。由于尚未将JavaScript发送到浏览器,因此尚未执行JavaScript。

echo "http://www.example.com/$content/example"

将此信息发送到浏览器:

http://www.example.com/<script language="Javascript" src="http://www.codehelper.io/api/ips/?js"></script>
<script language="Javascript">document.write(codehelper_ip.Country);</script>/example

由于PHP非常简单,请尝试使用这种简单的JavaScript解决方案:

<script language="Javascript" src="http://www.codehelper.io/api/ips/?js"></script>
<script language="Javascript">document.write("http://www.example.com/" + codehelper_ip.Country + "/example");</script>