0

私は内部WebサイトのSphider検索エンジンを使用してきましたが、エクスポートされた.htm(l)ファイルで連絡先の詳細をすばやく検索できる必要があります。

$fulltxt = ereg_replace("[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)*(\.[A-Za-z]{2,3})", "<a href=\"mailto:\\0\">\\0</a>", $fulltxt);

電子メールアドレスを便利なmailto:リンクに置き換えて、ユーザーが検索結果から直接Outlookを開くことができるようにします。

でも、

while (preg_match("/[^\>](".$change.")[^\<]/i", " ".$fulltxt." ", $regs)) {
    $fulltxt = preg_replace("/".$regs[1]."/i", "<b>".$regs[1]."</b>", $fulltxt);
    }

これは、検索結果のすべての一致を太字のタグに置き換えます。これは、Outlookの[宛先...]フィールドに含まれているタグになります。HTMLでは次のようになります(Yuriyに感謝):

<a href="mailto:<b>name</b>.surname@domain"><b>name</b>.surname@domain</a>

'limit'パラメーターに値を追加しようとしました:

while (preg_match("/[^\>](".$change.")[^\<]/i", " ".$fulltxt." ", $regs)) {
    $fulltxt = preg_replace("/".$regs[1]."/i", "<b>".$regs[1]."</b>", $fulltxt, 1);
    }

おそらく、これは最初の出現のみを置き換えることで私の問題の解決策になるはずです(パターンはname-phone num-emailであり、常に名前で検索します)、代わりに、私が得るポイントまで信じられないほど遅くなりますサーバーからのタイムアウトメッセージ。私はさまざまな解決策を試してきましたが、運が悪かったのです。

何か案は?私は何か間違ったことをしていますか?

ありがとう。

(*オリジナルは大幅に編集されています)。

4

1 に答える 1

0

このようなことが起こることを正しく理解していましたか?

<a href="mailto:<b>email@domain</b>"><b>email@domain</b></a>

最初に検索結果にタグを付けてから、「mailto:」アンカーをメールに適用してみませんか? 追加された は、その 2 番目のステップのパターンで簡単に除外できます。

于 2012-09-13T09:16:24.563 に答える