簡體   English   中英

PHP 從字符串中刪除電話號碼和電子郵件

[英]PHP Removing Phone Number and E-mail from a string

我正在尋找一種從字符串中刪除任何電話號碼和電子郵件地址的方法。

有人已經實現了這種功能嗎?

你們都推薦什么? 埃格?

謝謝問候,提圖斯。

PS:任何教程都非常受歡迎:)

    $chaine = "Here is my e-Mail contact@domain.eu and my phone (works) 0606060606 (not works) 06.06.06.06.06";
// Phone Number :
$chaine = preg_replace('/\+?[0-9][0-9()-\s+]{4,20}[0-9]/', '[removed]', $chaine);

// E-mail adress :
$pattern = "/[^@\s]*@[^@\s]*\.[^@\s]*/";
$replacement = "[removed]";
preg_replace($pattern, $replacement, $chaine);

echo $chaine;

這是一個基本的實現。 電子郵件的正則表達式來自regexlib 可以在此處測試phpfiddle。

function removeEmailAndPhoneFromString($string) {
    // remove email
    $string = preg_replace('/([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/','',$string);

    // remove phone
    $string = preg_replace('/([0-9]+[\- ]?[0-9]+)/','',$string);

    return $string;
}

echo removeEmailAndPhoneFromString('Lorem ipsum foo@bar.com dolor sit amet, 555-123 555 consectetur adipiscing elit.');

手機的正則表達式只是放在一起,所以 YMMV。

嘗試為此使用preg_replace

代碼想要一個

    $string = 'your string';

    $patterns = array();
    $patterns[0] = '/([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/';
    $patterns[1] = '/([0-9]+[\- ]?[0-9]+)/';

    $replacements = array();
    $replacements[0] = '';
    $replacements[1] = '';

    //should use just one call of preg_replace for perfomance issues
    $string = preg_replace($patterns, $replacements, $string);

還閱讀

這是關於驗證電話號碼和電子郵件地址的正則表達式的問題。

phpfiddle 上的psSample

您可以使用此展位功能

function hide_email($str){

   $pattern = "/[^@\s]*@[^@\s]*\.[^@\s]*/";
   $replacement = "[Email removed]";
   return = preg_replace($pattern, $replacement, $str);

 }

在 hide_telnr 函數中有 {4,} 表示允許低於 99999 的數字

function hide_telnr($str){

   $pattern = "/([0-9]+[\- ]?[0-9]+){4,}/";
   $replacement = "[Telefon Number removed]";
   return = preg_replace($pattern, $replacement, $str);

 }

如果您想在 PHP 或任何其他語言的消息或聊天中隱藏電子郵件和電話號碼。 您需要使用正則表達式,請閱讀w3school 上的正則表達式。

我為您提供了一個簡單而完整的解決方案。

<?php       
    $regex_email = '/[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})/';
    $regex_phone = "/[0-9]{5,}|\d[ 0-9 ]{1,}\d|\sone|\stwo|\sthree|\sfour|\sfive|\ssix|\sseven|\seight|\snine|\sten/i";

    
    $str = " Hello My Email soroutlove1996@gmail.com AND Phone No. is +919992799999 and +91 9992799999, or 9 9 9 2 7 9 9 9 9 9 and Nine Nine";;
    $str = preg_replace($regex_email,'(email hidden)',$str); // extract email
    $str = preg_replace($regex_phone,'(phone hidden)',$str); // extract phone
    
    echo $str;

輸出: Hello My Email (email hidden) AND Phone No. is +(phone hidden) and +(phone hidden), or (phone hidden) and(phone hidden)(phone hidden)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM