![](/img/trans.png)
[英]Output buffering doesn't write PHP within HTML code when creating a new PHP file
[英]Creating PHP code within HTML
我正在嘗試在HTML中創建一個PHP代碼塊,這樣當用戶加載頁面時,它會以電子郵件地址中的用戶身份顯示其IP地址和時間/日期。
我在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'; ?>
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
,如果你想返回IP,那么它的$_SERVER['REMOTE_ADDR']
不是$REMOTE_ADDR
除非你之前定義了那個變量。
從你可以看到結束的事實判斷?>
,我推斷你的PHP代碼根本不運行,並且被解釋為常規HTML。
可能有幾個原因(配置錯誤的Apache就是其中之一),但我懷疑的是你已經禁用了短PHP標簽。 嘗試使用<?php
而不是<?
。
您使用了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()
調用來保持行的簡短和可讀性。顯然,這也適用於傳統的字符串連接。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.