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

如何在php中获取文件的url路径,php,path,dirname,realpath,Php,Path,Dirname,Realpath,用于发送电子邮件链接(确认订阅)。我需要文件subscribe.php的路径。 在我的Web服务器上,文件subscribe.php位于webroot中。 外部访问将是:http://newsletter.mydomain.com/subscribe.php 这是我通过电子邮件发送给用户的subscribe.php中的链接: $mail->Body = '<a href="'.$subscribe_path.'subscribe.php?name='.urlencode(base64

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

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

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

我怎样才能更全面地掌握路径? 我试过:

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

但这会在文件
subscribe.php
中产生类似
/home/vhosts/mydomain.com/subdomains/newsletter/httpdocs/

的内容,将var放在下面:

  $subscribe_path = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[PHP_SELF]";
当您回显
$subscribe\u path
时,它将输出:
http://newsletter.mydomain.com/subscribe.php

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

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

电子邮件中的链接:

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

$mail->Body='';

您将实际文件路径与URL路径混淆。
$mail->Body = '<a href="'.$subscribe_path.'?name='.urlencode(base64_encode($name)).'&email='.urlencode(base64_encode($email)).'">Confirm your email</a>';