【PHP8.x】DOMDocument::substituteEntitiesプロパティの使い方
substituteEntitiesプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
substituteEntitiesプロパティは、XML文書を扱うPHPのDOMDocumentクラスにおいて、未定義のエンティティ参照をどのように処理するかを制御するブール値(真偽値)を保持するプロパティです。XML文書内では、<や&のような特殊文字を表すエンティティ参照がよく使われますが、これらのエンティティが文書のDTD(Document Type Definition)で定義されていない場合があります。
このプロパティの値をtrueに設定すると、DOMパーサーは文書内で見つかった未定義のエンティティ参照(例えば&my_custom_entity;)を、そのままの文字列として扱います。これにより、DTDがない、あるいはDTDに記載されていないエンティティが含まれるXML文書を解析する際に、エラーや警告が発生することなく処理を続行できます。この設定は、特に外部から提供されるXMLデータで、厳密なDTDの定義が保証されない場合に有用です。
一方、デフォルト値であるfalseに設定されている場合、DOMパーサーは未定義のエンティティ参照を見つけると警告を発し、その参照を適切に置換せずに処理を進める可能性があります。これは、XML文書が厳密な標準に準拠していることを前提とし、未定義のエンティティが予期せぬ問題を引き起こすのを避けたい場合に適しています。厳密なXMLの検証が必要な場合は、デフォルトのfalseのまま使用することが推奨されます。
構文(syntax)
1<?php 2$dom = new DOMDocument(); 3$dom->substituteEntities = false; 4?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
bool
DOMDocument::substituteEntities プロパティは、エンティティ置換が有効かどうかを表す真偽値を返します。TRUE の場合、エンティティ置換が有効になり、FALSE の場合、無効になります。