【PHP8.x】Dom\ProcessingInstruction::replaceData()メソッドの使い方
replaceDataメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『replaceDataメソッドは、XML処理命令ノードが持つデータの一部を、指定した文字列で置き換える処理を実行するメソッドです』
Dom\ProcessingInstructionオブジェクトは、XML文書内でアプリケーションへの指示を記述する<?target data?>のような処理命令ノードを表します。このメソッドは、ノードのターゲット名ではなく、そのデータ部分の文字列を直接変更するために使用されます。メソッドには3つの引数を指定します。第1引数のoffsetには、置き換えを開始する位置を0から始まる数値で指定します。第2引数のcountには、offsetの位置から置き換える文字の長さを指定します。そして第3引数のdataに、新しく挿入したい文字列を渡します。このメソッドが実行されると、元のノードのデータが直接書き換えられ、処理は完了します。メソッド自体に戻り値はありません。もし指定した開始位置や文字数がデータ全体の長さを超えるなど、不正な値であった場合にはDOMExceptionが発生するため注意が必要です。
構文(syntax)
1<?php 2 3$document = new DOMDocument(); 4 5// 処理命令ノードを作成: <?app-version data="1.0.0"?> 6$pi = $document->createProcessingInstruction( 7 'app-version', 8 'data="1.0.0"' 9); 10 11// データ 'data="1.0.0"' の一部を置き換える 12// オフセット6の位置から5文字 ("1.0.0") を "2.0.0" に置き換える 13$pi->replaceData(6, 5, '2.0.0'); 14 15// 結果を出力 16// 出力: <?app-version data="2.0.0"?> 17echo $document->saveXML($pi); 18 19?>
引数(parameters)
int $offset, int $count, string $data
- int $offset: 置換を開始するオフセット(文字位置)を指定する整数
- int $count: 置換する文字数を指定する整数
- string $data: 置換する新しいデータを指定する文字列
戻り値(return)
void
このメソッドは、指定された位置から指定された文字数だけノードのデータを置き換えます。戻り値はありません。