Re[2]: [PHP] check if a file is included
| From: | ANR Daemon | Date: | Mon, 15 Sep 2008 15:32:21 +0000 |
| Subject: | Re[2]: [PHP] check if a file is included | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-280183@lists.php.net to get a copy of this message | ||
Greetings, Jochem Maas.
In reply to Your message dated Friday, September 12, 2008, 17:05:58,
>> actually $_SERVER[script_name] is probably better if not being used from
>> a webserver.
>>
> you didn't mention wanting to use the cmdline.
> untested code follows:
> <?php
> function indirectCall($s)
> {
> if (php_sapi_name() == 'cli') {
> return strstr($s, $argv[0]) !== false;
> } else {
> return strstr($s, $_SERVER["REQUEST_URI"]) !== false;
> }
> }
Actually, it must be (Windows-proof):
<?php
function indirectCall($s)
{
return (strtr($s, '\\', '/') != strtr($_SERVER['SCRIPT_FILENAME'],
'\\', '/'));
}
if(!indirectCall(__FILE__))
{
// we got you there, fool!
}
?>
For those who do not know: Windows support both back- and forward slashes as
directory separators. Since DOS 3.3 at least.
Even
php.exe -f "//host/share/script.php"
works.
--
Sincerely Yours, ANR Daemon <anrdaemon@freemail.ru>