我可以使用PHP获取iframe父窗口的URL吗?

时间:2013-02-02 14:10:44

标签: php url

我在网页上有一个iframe,而我想从iframe获取父窗口的网址。是的,我一直在网上搜索,但我一直在用JavaScript获得解决方案。

那么你的人知道任何只使用PHP的解决方案吗?

3 个答案:

答案 0 :(得分:20)

服务器端脚本无法在客户端明确发送数据的情况下了解客户端的任何信息,例如:使用AJAX。

如果您可以控制iframe本身,则始终可以在查询字符串中传递变量并使用$_GET访问它们:

<强> HTML

<iframe src="http://example.com/file.php?variable=value"></iframe>

<强> PHP

<?php

    echo $_GET['variable'] // Outputs 'value'

?>

UPDATE(这实际上可能是这样)

使用$_SERVER['HTTP_REFERER']可能有办法。包含iframe的HTML文件在请求文件时会发送一些标头,其中一个标头似乎是HTTP_REFERER。我在本地进行了测试,似乎有效。

唯一的缺点是你不知道引用者是否是iframe。同样,如果你可以控制iframe,你可以使用上面的方法传递一个变量,说它是一个iframe,并使用下面的方法动态获取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.
?>

答案 1 :(得分:5)

我遇到了同样的问题,我在iframe中运行了一个搜索例程,希望能够创建其他页面的链接,以自动执行上述iframe的搜索功能。

阅读完所有'只能在javascript中完成'之后我使用了这个:

$topurl=$_SERVER['HTTP_REFERER'];
$q=substr($topurl,strpos($topurl,'=')+1);

原油但对我的需求有效。我知道你可以得到想象并打破网址的所有参数,但我只需要一个搜索词。

答案 2 :(得分:0)

这不起作用,你可以使用JavaScript。