問題タブ [strip-tags]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - strip_tags()が干し草の山を燃やすとき
私は、プログラムでアドレスを取得するためにクロールしている米国議会の各メンバーのWebサイトのリストを持っています。多くのサイトは基礎となるマークアップが異なりますが、何百ものサイトが私が書いたスクリプトに対して期待される結果を提供していないことがわかり始めるまで、これは最初は問題ではありませんでした。
考えられる原因を評価するためにもう少し時間をかけた後strip_tags()
、結果を呼び出すfile_get_contents()
と、ページのソースのほとんどが何度も消去されていることがわかりました。これは、HTMLを削除するだけでなく、私がスクレイプしたかった非HTMLを削除することでもありました。
そこで、へstrip_tags()
の呼び出しを削除し、英数字以外のすべての文字を削除する呼び出しに置き換えて、プロセスをもう一度実行しました。それは他の結果をもたらしましたが、それでも多くを欠いていました。今回は、正規表現が目的のパターンと一致していなかったためです。返されたコードを確認したところ、HTML属性の残りがテキスト全体に散在していて、パターンが壊れていることに気付きました。
これを回避する方法はありますか?不正な形式のHTMLの結果ですか?私はそれについて何かすることができますか?
ruby-on-rails - strip_tags を使用するデータ変更移行を実行する方法は?
summary
新しい列を既存のテーブルに追加しています。これには、列の HTML のプレーンテキスト スニペットが含まれますbody
。
移行を実行するときに、既存のすべての電子メールの概要を作成したいと考えています。ただし、移行で strip_tags を使用する方法がわかりません。
これが私がこれまでに持っているものです:
もちろん、これはうまくいきません:
undefined method 'strip_tags' for #<ActiveRecord::ConnectionAdapters::MysqlAdapter:0xb6e29be8>
移行内で strip_tags メソッドにアクセスするにはどうすればよいですか? 正規表現または別のそのような回避策を実行できることは知っていますが、将来の使用のためにこれを行う方法を知りたいと思っています。
ありがとう
php - 私は自分でPHPを学んでいて、strip_tags()関数に気づきました。これがセキュリティを強化する唯一の方法ですか?
私はPHPを初めて使用し、ここでチュートリアルをフォローしています: リンク
ユーザーが入力にphpコードを記述して、基本的にサイトを台無しにするのはかなり怖いですよね?
さて、今私は少し妄想的であり、私は私にいくつかの習慣ができたらそれらを詰め込もうとするよりも、すぐにセキュリティのベストプラクティスを学びたいと思っています。
私はPHPを初めて使用するので(文字通り2日前に習得しました)、混乱することなく、ほとんど何でも簡単に学ぶことができます。
私のサイトでシェナニガンを防ぐには、他にどのような方法がありますか?:D
php - フォーマットを保持し、HTML を壊さずに PHP substr() と strip_tags() を使用する
タグを削除したり HTML を壊したりせずに (元のコンテンツではなく、削除されたコンテンツの) 100 文字にカットするさまざまな HTML 文字列があります。
元の HTML 文字列(288 文字):
標準トリム: 100 文字にトリムし、HTML を分割します。削除されたコンテンツは最大 40 文字になります:
削除された HTML:正しい文字数を出力しますが、明らかに書式設定が失われます:
部分的な解決策: HTML Tidy または purifier を使用してタグを閉じると、クリーンな HTML が出力されますが、HTML の 100 文字は表示されません。
課題:きれいな HTML とn文字 (HTML 要素の文字数を除く) を出力するには:
類似の質問
php - 問題:PHPのstrip_tagsと多次元配列フォームパラメータ
フォームから取得したテキスト入力からタグを削除して、でタグを処理するのに問題がありますcheckout.php
。入力はに保存されますmulti-dimensional array
。
これが私のフォームです:
ここにcheckout.phpがあります:
php - 最初の200文字を取得するときのPHP:HTMLマークアップの違反
私のPHPWebアプリケーションには、ユーザーがリッチテキストエディター(FCKEditor im using)を使用してデータを入力し、エディターからDBテーブルにマークアップを保存するデータ入力フォームがあります。別のページで最初の200を表示する必要があります。コンテンツの文字(全体を表示するには、[もっと見る]リンクを使用)。したがって、最初の200文字を取得すると、すでに開始されている一部のhtmlタグの終了タグを見逃す可能性があるため、HTM Lmarkupが壊れています。これを取り除くにはどうすればよいですか?strip_tagsを使用してすべてのHTMLマークアップを削除できることはわかっていますが、そのままにしておきたいのですが、これを解決するためにできることはありますか?
php - フォームを確保するには?
ユーザーがメッセージを追加できるフォームがあるため、フォームのセキュリティに関する記事を読んでいました。
strip_tags()
、htmlspecialchars()
およびを使用するのが最適であると読みましたnl2br()
。他のどこかで を使用すると言われていますhtml_entity_decode()
。
ユーザー入力を受け取るページにこのコードがあります
しかし、メッセージをエコーすると、すべてが1行になり、改行がによって削除され、strip_tags
元に戻されないように見えnl2br()
ます。
ブレークが削除された場合、それをどこに戻すか (またはそれを行うか) をどのように知るのでしょうか?
とにかく、フォームでjavascriptを使用するなど、サイトをハッキングしようとするためにフォームを保護できる方法を探しています。
php - PHP: How to mass replace $_POST[...] with strip_tags($_POST[...])
I'm currently recovering from a nasty XSS attack, and realized I never sanitized inputs on several of the forms on my site. I used Notepad++'s Find In Files feature to search for $_POST
in all my PHP files, and got almost 5,000 results. Now, I really don't want to go and manually add strip_tags
to every one of those results, but a replace-all wouldn't do the trick... and I'm a total noob when it comes to things like regular expressions.
Is there any way to make this a little less tedious?
php - 正規表現を使用してPHPでタグを削除するには?
私がやりたいことは、クラスdataを持つすべてのスパンからdata-urlを取得することです。したがって、次のように出力されます。
そして、残りのhtml タグをすべて削除したいと思います。
出力:
誰かがこれを行う方法を教えてもらえますか?
php - PHP で strip_tags が機能しないのはなぜですか?
私は次のコードを持っています:
$firstArticle は stdClass オブジェクトです。
$firstArticle->introtext が文字列を参照していることがわかります。
「<p>
この夏、グリーンランドの北西側にあるピーターマン氷河から巨大な氷の塊が分離しました。サイズは約 100 平方マイル (260 平方キロメートル) で、マンハッタンの 4 倍の大きさです。」
この<p>
アプリケーションではタグが問題ですが、strip_tags はタグの削除を絶対に拒否しており、その理由がわかりません。私は実際に strip_tags をあきらめ、代わりに正規表現 /<(.|\n)*?>/ で preg_replace を実行しようとしました:
しかし、それもうまくいきませんでした!この文字列を出力するときに、この文字列からすべての HTML タグ (一致するかどうかに関係なく) を削除するにはどうすればよいですか?