データベース レコードから HTML タグを削除しています
データベース テーブルから、特定の列にキーワード「mytext」が含まれる行を抽出しようとしています" しかし、間違った結果が表示されます。テーブルには、文字列を囲むさまざまな程度の HTML タグを持つ行が含まれています。目的のテキストを含む行を正確に識別するには、HTML タグで囲まれたテキストを除外することが重要です。
考えられる解決策の 1 つは、fnStripTags として知られるカスタム MySQL 関数を利用することです。この関数は文字列を入力として受け取り、すべての HTML タグを削除して、純粋にテキスト形式の出力を提供します。
コード:
SET GLOBAL log_bin_trust_function_creators=1; DROP FUNCTION IF EXISTS fnStripTags; DELIMITER | CREATE FUNCTION fnStripTags( Dirty varchar(4000) ) RETURNS varchar(4000) DETERMINISTIC BEGIN DECLARE iStart, iEnd, iLength int; WHILE Locate( '<', Dirty ) > 0 And Locate( '>', Dirty, Locate( '<', Dirty )) > 0 DO BEGIN SET iStart = Locate( '<', Dirty ), iEnd = Locate( '>', Dirty, Locate('<', Dirty )); SET iLength = ( iEnd - iStart) + 1; IF iLength > 0 THEN BEGIN SET Dirty = Insert( Dirty, iStart, iLength, ''); END; END IF; END; END WHILE; RETURN Dirty; END; | DELIMITER ;
使用法:
関数を定義したら、クエリでそれを使用して HTML タグを除外できます。検索:
SELECT * FROM table WHERE fnStripTags(colmn_name) LIKE '%mytext%';
この変更されたクエリは、削除されたテキストに文字列「mytext」が含まれる行のみを返し、正しい結果を提供します:
Row 3: <p>This is the Third row my mytext is there </p>
以上がHTML タグを無視してデータベース列のテキストを検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。