[英]Accurately count number of links in PHP and Javascript
我有一個可以通過前端JS和服務器端PHP進行驗證的表單。 我需要的是一種可靠地計算HTML字符串中鏈接數的方法。 我能想到的最好方法是計算結束標記。 但是,僅搜索該標簽將不起作用,因為用戶可以通過添加空格( </a >
來繞過驗證。
我對regex相當陌生,這是到目前為止我能想到的模式:
<[ \n\t]*\/[ \n\t]*a[ \n\t]*>
用Javascript:
function link_count(s){
return s.match(/<[ \n\t]*\/[ \n\t]*a[ \n\t]*>/g, s).length;
}
在PHP中:
function count_links($str){
return preg_match_all('<[ \n\t]*/[ \n\t]*a[ \n\t]*>', $str, $matches);
}
這是最好的方法嗎? 它會影響表單的性能嗎(html字符串可能很長)? 我正在尋找最有效,最可靠的解決方案。
提前致謝。
因此,就像@sgroves所說的那樣, </a>
並不是全部鏈接。 檢查href
可能會更有趣。
另外,為什么不直接檢查開始標簽呢? 我嘗試搜索<a .... href>
您可以使用's'修飾符忽略換行符...
/<\\s*\\ba\\b.*?href/gs
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.