Download the PHP package esperecyan/html-filter without Composer

On this page you can find all versions of the php package esperecyan/html-filter. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package html-filter

HTMLフィルター

ホワイトリストによる要素名と属性のチェックを行うHTMLフィルターです。 HTMLバリデーションは行いません。

上の例の出力は以下となります。

インストール

Composer のインストール方法については、Composer のグローバルインストール - Qiitaなどをご覧ください。

要件

使い方

esperecyan\html_filter\Filterコンストラクタの第1引数に、ホワイトリストを与えます。 インスタントのfilterメソッドの第1引数に入力文字列を与えると、HTMLとしてもXHTMLとしても扱える文字列を返します。

当ライブラリは、body要素の子孫としての断片的なHTMLしか扱えません。 また、xmlns属性を含む文書は正常に取り扱うことができず、 http://www.w3.org/1999/xhtml 以外の名前空間を持つ要素 (svg要素、math要素)、およびその子孫は強制的に取り除かれます。 また、コメントなども取り除かれます。

ホワイトリスト

$whitelistの例 説明
['em', 'strong'] em要素とstrong要素を許可し、属性は一切許可しません。
['a' => 'href', 'em', 'strong'] a要素とem要素とstrong要素を許可し、a要素に限りhref属性を許可します。
['a' => ['href', 'title']] a要素を許可し、a要素のhref属性とtitle属性を許可します。
['a' => ['href' => '#^https://#u'] a要素を許可し、正規表現 (PCRE) のパターン「#^https://#u」に合致するhref属性のみを許可します
[['span' => ['class' => ['foo', 'bar', 'foo bar']]]] span要素を許可し、属性値が「foo」「bar」「foo bar」のいずれかに完全一致するclass属性のみを許可します。(文字大小区別)
[['*' => ['id' => function (string $id): bool { return !in_array($id, ['foo', 'bar']); }], 'h1', 'h2', 'h3'] h1要素とh2要素とh3要素を許可し、コールバック関数が真を返すid属性のみを許可します。
null フィルタリングを行わず、整形のみを行います。(※コメントなどの強制的な除去を除く)

コメントは常にフィルタリング対象となります。

オプション

esperecyan\html_filter\Filterコンストラクタの第2引数に連想配列で与えます。 各オプションにnullを与えた場合、指定は無視されます。

キー
before フィルタリング処理前 (HTMLの構文解析後) の文書木に対して処理を行うコールバック関数を指定します。第1引数でbody要素のDOMElementを受け取ります。この関数が false (同じ型) を返した場合、そこで処理を停止し、filterメソッドはから文字列を返します。
after フィルタリング処理後 (HTMLの直列化前) の文書木に対して処理を行うコールバック関数を指定します。他は before と同じです。

ロギング

Psr\Log\LoggerAwareInterfaceを実装しています。

ログレベル 説明・例
Psr\Log\LogLevel::ERROR HTMLとして読み込めなかった場合。
Psr\Log\LogLevel::WARNING masterminds/html5が処理したエラー。 < に対応する > が無いなど、HTMLとして壊れている場合。
Psr\Log\LogLevel::NOTICE フィルタリングを行った場合。

Psr\Log\LogLevel::NOTICEの場合のコンテキスト

キー
node 対象のノードの型を表す定数。整数。
element 対象の要素名。
attribute フィルタリング対象が属性である場合、その属性名。
value フィルタリング対象が属性である、かつ属性値が規則に合致しないためにフィルタリングされた場合、その属性値。

注意

まったくログが発せられなくとも、入力をXHTMLとしては取り扱えない場合があります。 XHTMLとして埋め込む場合、出力時にはesperecyan\html_filter\Filter->filter()を通してください。

Contribution

Pull Request、または Issue よりお願いいたします。

セマンティック バージョニング

当ライブラリはセマンティック バージョニングを採用しています。 パブリックAPIは、esperecyan\html_filter\Filterクラスのpublicメソッドのみです。

ライセンス

当ライブラリのライセンスは Mozilla Public License Version 2.0 (MPL-2.0) です。


All versions of html-filter with dependencies

PHP Build Version
Package Version
Requires php Version >=7.0
esperecyan/url Version ^5.0.0
masterminds/html5 Version ^2.7.0
psr/log Version ^1.0.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package esperecyan/html-filter contains the following files

Loading the files please wait ....