-1

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

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

脚本.html

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

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

索引.php

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

问题是该回声的输出很奇怪:

回声输出:

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。

非常感谢你。

4

1 回答 1

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>
于 2013-10-19T00:36:16.353 回答