私はTinyMCEを使ってphpMyAdminのSQLテーブルにいくつかのHTMLを保存しています。表から行を挿入して検索すると問題はありません。データベース内のHTMLの正しい書式設定
私は正規表現を使用して、検索されたテキストの一部の短いコードを翻訳しています。これが問題の発生場所です。
これは単に可能htmlタグと新しいラインを持つ2つのショートコードの間のテキストを取得し、私の正規表現、である:私はDBからHTMLを取得し、その上で正規表現を実行すると
/(<.+>)?[[]{$code}[]](<\/.+>)?((?:\n.+\n?)+)(<.+>)?[[]{$code}[]](<\/.+>)?/
、preg_match_all()
は何も一致しませんが、データベースの行をダブルクリックしてインラインエディタを開くと、phpMyAdminは何かを実行して行を自動的に更新し、テキストを新しい値に設定します;次に、私が新しい値で正規表現を実行すると、preg_match_all()
が正しい値と一致します。
私は変換テキストなどの自動エンコードを行っていると思っていましたが、挿入する前にmb_detect_encoding()
をHTML上で実行していたのですが、エンコードがUTF-8であることが確認されています(utf8_unicode_ci
)。
私はメモ帳+ +で更新前後のテキストとEOL文字を比較して、それらはまったく同じですが、phpMyAdminが更新する前に私の正規表現は機能しません。
テキストを修正するためにphpMyAdminとは何ですか、そしてそれがデータベースに挿入される前にそれを行うにはどうすればよいですか?行を自動的に更新するのはなぜですか?
私があなただったらDBに保存する前に$ _SESSIONの値を保存しておくと、PHPMyAdminで更新が行われた後に新しい値が取得され、比較されます。たぶんstrlen()を使って、htmlspecialchars()を使って...各文字をord()で置き換えても...私は大声で考えています。 P.S.いくつかのコードを表示したり、jsfiddleを提供することができれば、私たちがあなたを助けるのが良いでしょう。 – Kamae