在 HTML 中显示 Return 值

Display Return Value in HTML

我必须创建一个类似 (whatsmyip.com) 的工具,但使用特殊过滤器左右,我必须将此代码实现到 html 网站,但不知道如何回应返回的html 中的值.. 感谢您的帮助

    public function getClientIp() {
        if ($this->clientIp) {
            return $this->clientIp;
        }
        $ip_keys = ['HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR'];
        foreach ($ip_keys as $key) {
            if (isset($_SERVER[$key])) {
                foreach (explode(',', $_SERVER[$key]) as $ip) {
                    // trim for safety measures
                    $ip = trim($ip);
                    // attempt to validate IP
                    $filterOptions = FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE;
                    if (filter_var($ip, FILTER_VALIDATE_IP, $filterOptions) !== false) {
                        return $ip;
                    }
                }
            }
        }
        $this->clientIp = $_SERVER['REMOTE_ADDR'] ?: false;
        return $this->clientIp;
    }

我需要这样的东西来显示 ip

<h1>Was ist meine IP-Adresse?</h1>
<p>Hier sehen Sie, welche IP-Adresse Sie derzeit für Ihre Internetverbindung nutzen.</p>
<br /><br /><div style="background-color:lightgray; padding:10px;">{source}<span style="font-family: courier new, courier, monospace;">&lt;?php echo "Ihre IP-Adresse lautet: $clientIp" ?&gt;</span>{/source}
</div>

您只需要回显 returns IP 地址的函数结果:

echo getClientIp();

您还需要修改函数 - 我猜您是从别处获取这段代码而没有真正理解它(即 rarely a good idea)。它显然是 class 的一部分,因此 public 和所有对 $this 的引用。我在下面对其进行了更改,因此它将作为一个独立的函数运行。

完整示例:

<?php

function getClientIp() {
    $ip_keys = ['HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR'];

    foreach ($ip_keys as $key) {
        if (isset($_SERVER[$key])) {
            foreach (explode(',', $_SERVER[$key]) as $ip) {
                // trim for safety measures
                $ip = trim($ip);
                // attempt to validate IP
                $filterOptions = FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE;
                 if (filter_var($ip, FILTER_VALIDATE_IP, $filterOptions) !== false) {
                    return $ip;
                 }
             }
        }
    }

    $clientIp = $_SERVER['REMOTE_ADDR'] ?: false;
    return $clientIp;
}
?>

<h1>Was ist meine IP-Adresse?</h1>
<p>Hier sehen Sie, welche IP-Adresse Sie derzeit für Ihre Internetverbindung nutzen.</p>
<br /><br />
<div style="background-color:lightgray; padding:10px;">
  {source}
    <span style="font-family: courier new, courier, monospace;">
      Ihre IP-Adresse lautet: <?php echo getClientIp();?>
    </span>
  {source}
</div>