我有两个文件: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。
非常感谢。
答案 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>