ホーム>source

適切なphp preg_replaceコードを作成してテキストコンテンツからすべてのURLの用語を削除するのは本当に頭が痛いです...貢献者の)。

URL用語の種類の例:

https://www.example.com
http://www.example.com
www.example.com
subdomain.example.com
www.subdomain.example.com
example.com

最初の段落:

https://www.subdomain.example.comThis is the FIRST inner dummy sentence.https://www.subdomain.example.comThis is the SECOND inner dummy sentence.https://www.subdomain.example.com

この段落に変換する必要があります:

This is the FIRST inner dummy sentence. This is the SECOND inner dummy sentence.

一番簡単な方法は、最後の.tld(ドットtld)と.tld(ドットtld)の前のものを一致させることだと思います。 tldは.netまたは.anythingになり得ることをご理解ください...

<a href="/">link</a> を削除するコードを見つけることができました  以下の通り:

function remove_html_link($link) {
$end = preg_replace('#<a.*?>.*?</a>#i', '', $link);
return $end;
}

しかし、どのようにpreg_replaceを作成できますかPLAIN URL(リンクされていない、つまり通常のテキスト) お願いします?

解決策をすべて事前にありがとう!

So the final best working code snippet for my case is from:

@user3783243 - For specific/updated list of TLDs

"/(?:https?:\/\/(?:www\.)?)?[a-z.\/\d-]+\.(com|net|org)\b/"

     

ユーザーバブル...またはバンブル...-すべてのTLD

     

"/\S+\.[a-z]+ */"

     

皆さん、本当にありがとうございました。私はすぐに解決策を期待していませんでした!

乾杯、 ベルトリオ。

あなたの答え
  • 解決した方法 # 1

    <?php
    
    $data1='https://www.example.com';
    $data2='http://www.example.com';
    $data3='www.example.com';
    $data4='www.subdomain.example.com';
    
    $text = $data1.' This is the FIRST inner dummy sentence ';
    $text .= $data2.' This is the SECOND inner dummy sentence ';
    $text .= $data3.' This is the THIRD inner dummy sentence ';
    $text .= $data4.' This is the FORTH inner dummy sentence ';
    $string = preg_replace('/\b((https?|ftp|file):\/\/|www\.)[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i', ' ', $text);
    
    echo $string;
    
    

    上記のコードは、変数に設定したURLのタイプを、使用しているすべてのセンチメントから削除します。

    出力は次のとおりです。これは最初の内部ダミー文ですこれはSECOND内部ダミー文ですこれはTHIRD内部ダミー文ですこれはFORTH内部ダミー文です

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ リーダー-1でのKafkaトピックパーティション