昨日、友人から、ユーザーが送信したデータにスーパー接続が含まれているかどうかを確認できるかどうか尋ねられました。そうであれば、接続をフィルタリングする方法を紹介します。
文字列にハイパーリンクが含まれているかどうかを判断する
コードは次のとおりです | コードをコピー |
$str="ssdsfsdfsdfss"; |
次に、接続部分をフィルタリングするだけです。
コードは次のとおりです | コードをコピー |
echo preg_replace("/(?<=href=)([^>]*)(?=>)/i","#", "こんにちは、ここをクリックしてご覧くださいこんにちは、ここをクリックしてご覧ください"); |
定期: /(?<=href=)([^>]*)(?=>)/
(?<=exp) は exp の後の位置と一致します
(?=exp) は exp の前の位置と一致します
この通常の一致は、href= の後および「>」の前にある「>」以外のすべての文字と一致します。
これらの文字 (URL) を見つけて # に置き換えて、HTML 内のすべてのリンクを削除します。
ハイパーリンクを抽出する例を共有します
コードをコピー | |
関数 match_links($document) { preg_match_all("' while(list($key,$val) = each($links[2])) { if(!empty($val)) $match['link'][] = $val; } while(list($key,$val) = each($links[3])) { if(!empty($val)) $match['link'][] = $val; } while(list($key,$val) = each($links[4])) { if(!empty($val)) $match['content'][] = $val; } while(list($key,$val) = each($links[0])) { if(!empty($val)) $match['all'][] = $val; } $match を返します; }
|