【PHP8.x】deleteDataメソッドの使い方
deleteDataメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
deleteDataメソッドは、PHPのDOM拡張機能において、XMLやHTML文書内のコメントノードを表すDOMCommentクラスに属し、そのコメントノードが保持するテキストデータの一部を削除するメソッドです。
このメソッドは、2つの引数を取ります。最初の引数であるoffsetは、コメントデータ内で文字の削除を開始する位置を0から数えた数値で指定します。例えば、offsetが0であればコメントの先頭から、1であれば2文字目から削除が開始されます。二番目の引数であるcountは、offsetで指定した位置から、削除したい文字数を指定します。
具体的には、DOMCommentオブジェクトが持つコメント文字列から、offsetで指定された開始位置からcountの長さ分の文字が取り除かれます。この操作は、対象となるコメントノードのデータを直接変更します。もしoffsetの値がコメントデータの長さを超えていたり、offsetとcountの合計がコメントデータの長さを超えてしまうような不正な指定があった場合、DOMExceptionというエラーが発生する可能性がありますので、引数の指定には十分な注意が必要です。このメソッドは、処理が成功しても特に値を返しません。
構文(syntax)
1<?php 2 3// XML文字列を準備します 4$xmlString = '<?xml version="1.0" encoding="UTF-8"?><root><!--This is a sample comment.--></root>'; 5 6// DOMDocumentオブジェクトを作成し、XMLを読み込みます 7$dom = new DOMDocument(); 8$dom->loadXML($xmlString); 9 10// コメントノードを取得します 11// DOMDocumentには子ノードとしてコメントノードがあります 12$commentNode = $dom->firstChild->nextSibling; 13 14// deleteData(offset, count) を使ってコメントのテキストを部分的に削除します 15// offset: 削除を開始する位置 (0から数える) 16// count: 削除する文字数 17// この例では、5番目の位置から10文字 ("is a sample") を削除します 18$commentNode->deleteData(5, 10); 19 20// 変更後のXMLを出力します 21echo $dom->saveXML(); 22 23?>
引数(parameters)
int $offset, int $count
- int $offset: 削除を開始する位置を指定する整数
- int $count: 削除する文字数を指定する整数
戻り値(return)
戻り値なし
戻り値はありません