在 HTML 内创建 PHP 代码
Creating PHP code within HTML
我正在尝试在 HTML 中创建一个 PHP 代码块,这样当用户加载页面时,它会显示他们的 IP 地址和 time/date 作为用户电子邮件地址。
我在 fedora21 上使用 apache,并启用了 PHP(在同一个 HTML 文件中使用 phpinfo() 函数测试)。
这是我要执行的代码:
<? echo '<a href="mailto:'.$REMOTE_ADDR.'_'.date('y-m-j').'-@example.com" title="There is no spoon">For stupid spambots'; ?>
它只打印 For stupid spambots'; ?>
而没有打印生成的电子邮件地址。
<? echo '<a href="mailto:'.$_SERVER['REMOTE_ADDR'].'_'.date('y-m-j').'-@example.com" title="There is no spoon">For stupid spambots</a>'; ?>
首先需要关闭 <a href
,如果您想要 return IP 其 $_SERVER['REMOTE_ADDR']
而不是 $REMOTE_ADDR
,除非您之前定义了该变量。
您使用了错误的 html 锚点语法。考虑一下:
<?php
$address = sprintf('%s_%s-@example.com', $_SERVER['REMOTE_ADDR'], date('y-m-j'));
echo sprintf('<a href="mailto:%1$s" title="%2$s">%3$s: %1$s</a>',
$address,
'There is no spoon',
'For stupid spambots');
?>
如果您希望地址可见,则必须将地址打印到锚定义的可见文本内容中。您只需要显示其中的 "For stupid spambots" 字符串即可。
(请注意,我只是使用 sprintf()
调用来保持行的简短和可读性。显然这也适用于传统的字符串连接。)
从您可以看到关闭 ?>
的事实来看,我推断您的 PHP 代码根本没有 运行 并且被解释为常规 HTML .
可能有几个原因(Apache 配置不当就是其中之一),但我的主要怀疑是您禁用了短 PHP 标签。尝试使用 <?php
而不是 <?
.
我正在尝试在 HTML 中创建一个 PHP 代码块,这样当用户加载页面时,它会显示他们的 IP 地址和 time/date 作为用户电子邮件地址。
我在 fedora21 上使用 apache,并启用了 PHP(在同一个 HTML 文件中使用 phpinfo() 函数测试)。
这是我要执行的代码:
<? echo '<a href="mailto:'.$REMOTE_ADDR.'_'.date('y-m-j').'-@example.com" title="There is no spoon">For stupid spambots'; ?>
它只打印 For stupid spambots'; ?>
而没有打印生成的电子邮件地址。
<? echo '<a href="mailto:'.$_SERVER['REMOTE_ADDR'].'_'.date('y-m-j').'-@example.com" title="There is no spoon">For stupid spambots</a>'; ?>
首先需要关闭 <a href
,如果您想要 return IP 其 $_SERVER['REMOTE_ADDR']
而不是 $REMOTE_ADDR
,除非您之前定义了该变量。
您使用了错误的 html 锚点语法。考虑一下:
<?php
$address = sprintf('%s_%s-@example.com', $_SERVER['REMOTE_ADDR'], date('y-m-j'));
echo sprintf('<a href="mailto:%1$s" title="%2$s">%3$s: %1$s</a>',
$address,
'There is no spoon',
'For stupid spambots');
?>
如果您希望地址可见,则必须将地址打印到锚定义的可见文本内容中。您只需要显示其中的 "For stupid spambots" 字符串即可。
(请注意,我只是使用 sprintf()
调用来保持行的简短和可读性。显然这也适用于传统的字符串连接。)
从您可以看到关闭 ?>
的事实来看,我推断您的 PHP 代码根本没有 运行 并且被解释为常规 HTML .
可能有几个原因(Apache 配置不当就是其中之一),但我的主要怀疑是您禁用了短 PHP 标签。尝试使用 <?php
而不是 <?
.