我在网页上有一个 iframe,我想从 iframe 获取父窗口的 url。是的,我一直在网上搜索,但我一直在使用 JavaScript 获得解决方案。
那么你们知道任何只使用 PHP 的解决方案吗?
如果没有客户端显式发送数据(例如使用 AJAX),服务器端脚本无法了解客户端的任何信息。
如果您可以控制 iframe 本身,则始终可以在查询字符串中传递变量并使用以下命令访问它们$_GET
:
HTML
<iframe src="http://example.com/file.php?variable=value"></iframe>
PHP
<?php
echo $_GET['variable'] // Outputs 'value'
?>
可能有一种使用$_SERVER['HTTP_REFERER']
. 包含 iframe 的 HTML 文件在请求文件时会发送一些标头,其中一个似乎是 HTTP_REFERER。我在本地对此进行了测试,它似乎有效。
唯一的缺点是您不知道引荐来源网址是否是 iframe。同样,如果您可以控制 iframe,您可以使用上面的方法传递一个变量,说它是一个 iframe,然后使用下面的方法动态获取 URL。
例如,假设这个文件的 URL 是http://example.com/:
<iframe src="http://example.com/file.php"></iframe>
PHP 文件,我们将其命名为 file.php:
<?php
echo $_SERVER['HTTP_REFERER']; // Should output http://example.com.
?>
我遇到了同样的问题,我在 iframe 中运行搜索例程,并希望能够从其他页面创建链接,从而自动执行所述 iframe 的搜索功能。
在阅读了所有“只能在 javascript 中完成”之后,我使用了这个:
$topurl=$_SERVER['HTTP_REFERER'];
$q=substr($topurl,strpos($topurl,'=')+1);
粗鲁但对我的需要有效。我知道您可以花哨并分解 url 的所有参数,但我只需要一个搜索词。
那行不通,您可以使用JavaScript。