我想用电子邮件的图像替换字符串中的所有电子邮件。
我已经有一个 PHP 函数来创建提供给它的文本的图像。所以我只是在寻找如何用相应的 basse64engoded 字符串替换电子邮件。
这就是我想要的:
"my email is <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="aacfd2cbc7dac6cfeacfd2cbc7dac6cf84c9c5c7" rel="noreferrer noopener nofollow">[email protected]</a> and my phone no is 349080353"
我想要一个函数将上面的字符串转换为以下字符串:
my email is <img src="image.php?id=ZG5zLWFkbWluQ437yifhb2dsZS5jb20="> and my phone no is 349080353
电子邮件的 ID 使用 base64_encode
进行编码。因此,我想要一个函数来搜索电子邮件并将其替换为以下 img 标签,并使用 base64_encode
对每封电子邮件进行编码并将其提供给“id”。
最佳答案
试试这个代码
$email_pattern = '/[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/';
$html = preg_replace_callback($email_pattern, "encode_email", "my email is <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="dcb9a4bdb1acb0b99cb9a4bdb1acb0b9f2bfb3b1" rel="noreferrer noopener nofollow">[email protected]</a> and my phone no is 349080353");
echo $html;
function encode_email($matches){
return '<img src="image.php?id='. base64_encode($matches[0]) .'">';
}
关于php - 使用 PHP 字符串将电子邮件替换为 Base64 编码的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14522286/