Ответ 1
Сценарий на стороне сервера никоим образом не знает ничего о клиентской стороне без прямой отправки данных, например, с помощью 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']
. HTML файл, содержащий iframe, отправляет некоторые заголовки, когда он запрашивает файл, а один из них - 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.
?>