如何在 php 中获取文件的 url 路径

How to grab url path to file in php

用于发送 link 到电子邮件(确认订阅)。我需要文件 subscribe.php 的路径。 在我的网络服务器上,文件 subscribe.php 位于网络根目录中。 外部访问将是:http://newsletter.mydomain.com/subscribe.php

这是 subscribe.php 中的 link,我通过电子邮件发送给用户:

$mail->Body = '<a href="'.$subscribe_path.'subscribe.php?name='.urlencode(base64_encode($name)).'&email='.urlencode(base64_encode($email)).'">Confirm your email</a>';  

此时我用这个:

$subscribe_path = 'http://newsletter/mydomain.com/'

我怎样才能更普遍地抓取路径? 我试过了:

$subscribe_path = dirname(__FILE__).'/'; 

但这会产生类似 /home/vhosts/mydomain.com/subdomains/newsletter/httpdocs/

的内容

在文件 subscribe.php 中将变量放在下面:

  $subscribe_path = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[PHP_SELF]";

当你回显$subscribe_path时,它会输出: http://newsletter.mydomain.com/subscribe.php

假设您在名为 subfolder 的子文件夹中有 subscribe.php,它将输出:

http://newsletter.mydomain.com/subfolder/subscribe.php

邮件中的link:

$mail->Body = '<a href="'.$subscribe_path.'?name='.urlencode(base64_encode($name)).'&email='.urlencode(base64_encode($email)).'">Confirm your email</a>';