1

答えを探していると、このスクリプトが見つかりましたhere

でも:

受信メールの本文はプレーンテキストのみで送信できます。データ (リンク) を失わないようにするために、受信したのと同じ形式で本文を送信する必要があります。

それを達成するためのこのスクリプトの簡単な変更はありますか?

ところで、後で、リンクされたファイル (電子メールから) をサーバーに保存し、本文のリンクを自分のものに置き換える必要があります。

ありがとう。

アップデート

どういうわけか、最初の問題 (メールに元の境界値を追加する) を解決しましたが、あと 3 つ残っています。このコードは 1 を返します。print_r($urls)

$pattern = '#^http://domain.com/(.*)(\w*)0\b#';
preg_match_all($pattern, $email, $urls);

同じコードは、これら 2 つの出力を含む空の配列を返します。

1print_r($urls, true)

2print_r($urls[0], true)

このような:

1

Array
(
    [0] => Array
        (
        )

    [1] => Array
        (
        )

    [2] => Array
        (
        )

)

2

Array
(
)

ただし、ここでコードをテストすると、魅力的に機能します

どうすれば値を取得できますか? $url1、$url2 などのように変数に含めると非常に便利です。

誰でも助けることができますか?(あなたの時間と労力は高く評価されます!)

4

1 に答える 1

0

私の質問にお答えします。

わかりました、私はすでにこれを解決しました。誰かがそれを必要とするなら、ここにいくつかの情報があります...

正規表現には余分な^. さらに、次のようなパターンを改善しました: "#http://domain.com/([=a-zA-Z\d/-]+)(.|\n|\r)([a-zA-Z\d/-]+)#"This urls have =and that was removed with this line: $var1=preg_replace("#=(.|\n|\r)#","",$var);This is not the best way to go, but it works. リンクを配列で取得し、後でファイルをダウンロードでき、リンクfile_get_contents()file_put_contents()変更するのは簡単でしたstr_replace。各電子メールのリンクの数が同じではなかったため、すべて for ループで実行されます。

皆さん、ハッピーホリデー!

于 2012-12-31T10:28:26.660 に答える