【问题标题】:How to decode email?如何解码电子邮件?
【发布时间】:2011-12-09 04:51:18
【问题描述】:

我正在抓取一页,其中包含...mailto:Stewart.Smi&#1... 等电子邮件。它已解码,我如何使用 PHP 对其进行编码?谢谢(仅用于教育目的)。

【问题讨论】:

  • 您显示的字符串仍然是编码的。您说它已解码,但事实并非如此。另外,您想如何在 PHP 中对其进行编码?
  • @EricJ。我想将此文本解码为普通地址(例如。name@mail.com)
  • 我不确定,但从编码模式来看,我认为它是使用带有 前缀和 ; 后缀的字符的 ascii 值编码的

标签: php email decode encode


【解决方案1】:

这些只是普通的 ASCII 字符,出于神秘的原因,它们被编码为 HTML 数字字符格式。即字母“a”编码为`

一个list of common encodings

内置的 php 函数 html-entity-decode() 应该将这些转换回可读的 utf-8。

【讨论】:

  • 看起来他们这样做是为了混淆电子邮件地址并阻止自动脚本找到它。
【解决方案2】:

尝试html_entity_decode() 获取编码值。

例如:

$str = "mailt&#111";  
$string = html_entity_decode($str);
echo $string;

【讨论】:

    【解决方案3】:

    每个实体都是一个字符的十进制表示。此 Perl 代码将转换简单的 ASCII。

    use strict;
    use warnings;
    
    my $mail = 'mailto:Stewart.Smi&#1';
    
    $mail =~ s/&#(\d+);/chr $1/eg;
    
    print $mail;
    

    输出

    mailto:Stewart.Smi&#1
    

    【讨论】:

      猜你喜欢
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      • 2020-04-29
      • 1970-01-01
      • 2014-05-15
      • 2010-09-12
      • 1970-01-01
      相关资源
      最近更新 更多