2

文字列内のすべてのメールをメールの画像に置き換えたい。

提供されたテキストのイメージを作成するための PHP 関数が既にあります。そのため、メールを対応するbasse64engoded文字列に置き換える方法を探しています。

ここに私が正確に欲しいものがあります:

"my email is example@example.com 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' に渡す機能が必要です。

4

4 に答える 4

2

このコードを試してください

$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 example@example.com and my phone no is 349080353");

echo $html;

function encode_email($matches){
    return '<img src="image.php?id='. base64_encode($matches[0]) .'">';
}
于 2013-01-25T13:19:05.647 に答える
0
$content = "my email is example@example.com and my phone no is 349080353"
preg_match("/[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})/i", $content, $matches);

print $matches[0];
于 2013-01-25T13:00:57.490 に答える
0

これが機能することを確認しました:)

<?php 
 $string = "my email is example@example.com and my phone no is 349080353";
 $pattern = "/[^@\s]*@[^@\s]*\.[^@\s]*/";
 $replacement = '<img src="">';
 $string1 = preg_replace($pattern, $replacement, $string);
 echo $string1
?>
于 2013-01-25T13:11:13.547 に答える