Bisakah kita menggunakan dom di php?

PHP DOM Wrapper adalah pustaka pembungkus DOM sederhana untuk memanipulasi dan melintasi dokumen HTML. Berdasarkan manipulasi jQuery dan metode traversal, sebagian besar meniru perilaku mitra jQuery-nya

Pengarang

  • Andrew Scott (andrew@andrewscott. bersih. au)

Persyaratan

  • PHP 7. 1 atau lebih baru
  • Pemuat otomatis yang kompatibel dengan PSR-4

Install

Instal dengan Komposer

composer require scotteh/php-dom-wrapper

Pemuatan otomatis

Pustaka ini membutuhkan pemuat otomatis, jika Anda belum menggunakannya, Anda dapat menyertakannya

require 'vendor/autoload.php';
_

Metode

Manipulasi

MethodjQuery Equivalent (jika berbeda)after()append()remove()before()prepend()replaceWith()

Lintasan

Setara dengan MethodjQuery (jika berbeda) next()nextAll()nextUntil()prev()prevAll()prevUntil()

Lainnya

MethodjQuery Setara (jika berbeda)panjang (properti)

Penggunaan

Contoh 1

use DOMWrap\Document;

$html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>';

$doc = new Document();
$doc->html($html);
$nodes = $doc->find('li');

// Returns '3'
var_dump($nodes->count());

// Append as a child node to each <li>
$nodes->appendWith('<b>!</b>');

// Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html>
var_dump($doc->html());


Metode

Manipulasi

addClass

self addClass(string|callable $class)

Contoh

$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>');
$doc->find('p')->addClass('text-center');
_

Hasil

<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>


mengikuti

self follow(string|NodeList|\DOMNode|callable $input)
_

Sisipkan argumen sebagai saudara secara langsung setelah masing-masing node dioperasikan

Contoh

$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>');
$doc->find('li')->first()->follow('<li>first-and-a-half</li>');

Hasil

<ul>
    <li>first</li>
    <li>first-and-a-half</li>
    <li>second</li>
</ul>
_


tambahkanDengan

self appendWith(string|NodeList|\DOMNode|callable $input)
_

Contoh

require 'vendor/autoload.php';
_0

Hasil

require 'vendor/autoload.php';
_1


appendTo

require 'vendor/autoload.php';
_2

Contoh

require 'vendor/autoload.php';
_3

Hasil

require 'vendor/autoload.php';
_1


attr

require 'vendor/autoload.php';
_5

Contoh #1 (Set)

require 'vendor/autoload.php';
_6

Hasil

require 'vendor/autoload.php';
_7

Contoh #2 (Dapatkan)

require 'vendor/autoload.php';
_8

Hasil

require 'vendor/autoload.php';
_9


mendahului

use DOMWrap\Document;

$html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>';

$doc = new Document();
$doc->html($html);
$nodes = $doc->find('li');

// Returns '3'
var_dump($nodes->count());

// Append as a child node to each <li>
$nodes->appendWith('<b>!</b>');

// Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html>
var_dump($doc->html());
0

Sisipkan argumen sebagai saudara tepat sebelum masing-masing node dioperasikan

Contoh

use DOMWrap\Document;

$html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>';

$doc = new Document();
$doc->html($html);
$nodes = $doc->find('li');

// Returns '3'
var_dump($nodes->count());

// Append as a child node to each <li>
$nodes->appendWith('<b>!</b>');

// Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html>
var_dump($doc->html());
1

Hasil

use DOMWrap\Document;

$html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>';

$doc = new Document();
$doc->html($html);
$nodes = $doc->find('li');

// Returns '3'
var_dump($nodes->count());

// Append as a child node to each <li>
$nodes->appendWith('<b>!</b>');

// Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html>
var_dump($doc->html());
2


klon

use DOMWrap\Document;

$html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>';

$doc = new Document();
$doc->html($html);
$nodes = $doc->find('li');

// Returns '3'
var_dump($nodes->count());

// Append as a child node to each <li>
$nodes->appendWith('<b>!</b>');

// Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html>
var_dump($doc->html());
_3

Contoh

use DOMWrap\Document;

$html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>';

$doc = new Document();
$doc->html($html);
$nodes = $doc->find('li');

// Returns '3'
var_dump($nodes->count());

// Append as a child node to each <li>
$nodes->appendWith('<b>!</b>');

// Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html>
var_dump($doc->html());
_4

Hasil

use DOMWrap\Document;

$html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>';

$doc = new Document();
$doc->html($html);
$nodes = $doc->find('li');

// Returns '3'
var_dump($nodes->count());

// Append as a child node to each <li>
$nodes->appendWith('<b>!</b>');

// Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html>
var_dump($doc->html());
5


menghancurkan

use DOMWrap\Document;

$html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>';

$doc = new Document();
$doc->html($html);
$nodes = $doc->find('li');

// Returns '3'
var_dump($nodes->count());

// Append as a child node to each <li>
$nodes->appendWith('<b>!</b>');

// Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html>
var_dump($doc->html());
6

Contoh

use DOMWrap\Document;

$html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>';

$doc = new Document();
$doc->html($html);
$nodes = $doc->find('li');

// Returns '3'
var_dump($nodes->count());

// Append as a child node to each <li>
$nodes->appendWith('<b>!</b>');

// Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html>
var_dump($doc->html());
7

Hasil

use DOMWrap\Document;

$html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>';

$doc = new Document();
$doc->html($html);
$nodes = $doc->find('li');

// Returns '3'
var_dump($nodes->count());

// Append as a child node to each <li>
$nodes->appendWith('<b>!</b>');

// Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html>
var_dump($doc->html());
_8


melepaskan

use DOMWrap\Document;

$html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>';

$doc = new Document();
$doc->html($html);
$nodes = $doc->find('li');

// Returns '3'
var_dump($nodes->count());

// Append as a child node to each <li>
$nodes->appendWith('<b>!</b>');

// Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html>
var_dump($doc->html());
_9

Contoh

self addClass(string|callable $class)
0

Hasil

self addClass(string|callable $class)
1


kosong

self addClass(string|callable $class)
2

Contoh

self addClass(string|callable $class)
_3

Hasil

self addClass(string|callable $class)
_4


hasClass

self addClass(string|callable $class)
5

Contoh

self addClass(string|callable $class)
6

Hasil

self addClass(string|callable $class)
_7


html

self addClass(string|callable $class)
8

Contoh #1 (Set)

self addClass(string|callable $class)
_9

Hasil

$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>');
$doc->find('p')->addClass('text-center');
_0

Contoh #1 (Dapatkan)

$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>');
$doc->find('p')->addClass('text-center');
_1

Hasil

$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>');
$doc->find('p')->addClass('text-center');
_2


tambahkanDengan

$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>');
$doc->find('p')->addClass('text-center');
_3

Contoh

$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>');
$doc->find('p')->addClass('text-center');
_4

Hasil

$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>');
$doc->find('p')->addClass('text-center');
_5


prependTo

$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>');
$doc->find('p')->addClass('text-center');
_6

Contoh

$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>');
$doc->find('p')->addClass('text-center');
_7

Hasil

$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>');
$doc->find('p')->addClass('text-center');
_5


hapusAttr

$doc = (new Document())->html('<p>first paragraph</p><p>second paragraph</p>');
$doc->find('p')->addClass('text-center');
_9

Contoh

<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>
0

Hasil

self addClass(string|callable $class)
_4


hapus Kelas

<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>
2

Contoh

<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>
_3

Hasil

<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>
_4


penggantiDengan

<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>
5

Contoh


teks

<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>
_6

Contoh


membuka

<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>
_7

Buka setiap simpul saat ini dengan menghapus induknya, mengganti induk dengan anak-anaknya (mis. e. node saat ini dan saudara-saudaranya)

Perhatikan bahwa setiap node dioperasikan secara terpisah, jadi saat Anda memanggil

require 'vendor/autoload.php';
21 di
require 'vendor/autoload.php';
22 yang berisi dua saudara kandung, dua orang tua akan dihapus

Contoh

<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>
_8

Hasil

<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>
_9


membungkus

self follow(string|NodeList|\DOMNode|callable $input)
_0

Bungkus node atau node saat ini dalam struktur yang diberikan

Struktur pembungkus dapat disarangkan, tetapi hanya boleh berisi satu node pada setiap level (saudara tambahan apa pun dihapus). Node terluar menggantikan node yang dioperasikan, sedangkan node yang dioperasikan dimasukkan ke dalam node terdalam

Jika dipanggil pada

require 'vendor/autoload.php';
_22, setiap node dalam daftar akan dibungkus secara terpisah. Ketika daftar tersebut berisi banyak node, argumen untuk membungkus() tidak boleh berupa
require 'vendor/autoload.php';
22 atau
require 'vendor/autoload.php';
25, karena itu dapat digunakan untuk membungkus node hanya sekali. Sebuah string atau callable mengembalikan string atau unik
require 'vendor/autoload.php';
22 atau
require 'vendor/autoload.php';
27 setiap kali dapat digunakan dalam kasus ini

Ketika sebuah callable dilewatkan, itu dipanggil sekali untuk setiap node yang dioperasikan, melewati node itu dan indeksnya. Callable harus mengembalikan string, atau

require 'vendor/autoload.php';
22 atau
require 'vendor/autoload.php';
25 unik setiap kali dipanggil

Perhatikan bahwa ini mengembalikan simpul asli seperti semua metode lain, bukan simpul (baru) yang melilitnya

Contoh

self follow(string|NodeList|\DOMNode|callable $input)
_1

Hasil

self follow(string|NodeList|\DOMNode|callable $input)
_2


wrapAll

self follow(string|NodeList|\DOMNode|callable $input)
_3

Seperti , tetapi ketika beroperasi pada banyak node, semuanya akan dibungkus bersama dalam satu instance dari struktur yang diberikan, bukan masing-masing secara individual

Perhatikan bahwa struktur pembungkus menggantikan node pertama yang dioperasikan, jadi jika node lain yang dioperasikan bukan saudara dari yang pertama, mereka akan dipindahkan ke dalam dokumen

Contoh

self follow(string|NodeList|\DOMNode|callable $input)
_4

Hasil

self follow(string|NodeList|\DOMNode|callable $input)
_5


wrapInner

self follow(string|NodeList|\DOMNode|callable $input)
_6

Seperti , tapi bukannya membungkus node yang sedang dioperasikan, ini membungkus isinya

Contoh

self follow(string|NodeList|\DOMNode|callable $input)
_7

Hasil

self follow(string|NodeList|\DOMNode|callable $input)
_8


Lintasan

menambahkan

self follow(string|NodeList|\DOMNode|callable $input)
_9

Tambahkan node tambahan ke set yang ada

Contoh

$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>');
$doc->find('li')->first()->follow('<li>first-and-a-half</li>');
0


anak-anak

$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>');
$doc->find('li')->first()->follow('<li>first-and-a-half</li>');
1

Kembalikan semua anak dari setiap node elemen di set saat ini

Contoh

$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>');
$doc->find('li')->first()->follow('<li>first-and-a-half</li>');
2


terdekat

$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>');
$doc->find('li')->first()->follow('<li>first-and-a-half</li>');
3

Kembalikan elemen pertama yang cocok dengan input yang disediakan dengan melintasi nenek moyang setiap node di set saat ini

Contoh

$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>');
$doc->find('li')->first()->follow('<li>first-and-a-half</li>');
4


isi

$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>');
$doc->find('li')->first()->follow('<li>first-and-a-half</li>');
5

Kembalikan semua anak dari setiap node di set saat ini

Contoh

$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>');
$doc->find('li')->first()->follow('<li>first-and-a-half</li>');
6


persamaan

$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>');
$doc->find('li')->first()->follow('<li>first-and-a-half</li>');
7

Kembalikan node dalam set saat ini pada indeks yang ditentukan

Contoh

$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>');
$doc->find('li')->first()->follow('<li>first-and-a-half</li>');
_8


Saring

$doc = (new Document())->html('<ul><li>first</li><li>second</li></ul>');
$doc->find('li')->first()->follow('<li>first-and-a-half</li>');
_9

Kembalikan node di set saat ini yang cocok dengan input

Contoh

<ul>
    <li>first</li>
    <li>first-and-a-half</li>
    <li>second</li>
</ul>
_0


Temukan

<ul>
    <li>first</li>
    <li>first-and-a-half</li>
    <li>second</li>
</ul>
_1

Mengembalikan turunan dari set saat ini yang difilter oleh pemilih dan sumbu XPath opsional

Contoh

<ul>
    <li>first</li>
    <li>first-and-a-half</li>
    <li>second</li>
</ul>
_2


pertama

<ul>
    <li>first</li>
    <li>first-and-a-half</li>
    <li>second</li>
</ul>
_3

Kembalikan node pertama dari set saat ini

Contoh

<ul>
    <li>first</li>
    <li>first-and-a-half</li>
    <li>second</li>
</ul>
_4


memiliki

<ul>
    <li>first</li>
    <li>first-and-a-half</li>
    <li>second</li>
</ul>
_5

Kembalikan node dengan turunan dari set saat ini yang cocok dengan input

Contoh

<ul>
    <li>first</li>
    <li>first-and-a-half</li>
    <li>second</li>
</ul>
_6


adalah

<ul>
    <li>first</li>
    <li>first-and-a-half</li>
    <li>second</li>
</ul>
_7

Uji apakah node dari set saat ini cocok dengan input

Contoh

<ul>
    <li>first</li>
    <li>first-and-a-half</li>
    <li>second</li>
</ul>
_8


terakhir

<ul>
    <li>first</li>
    <li>first-and-a-half</li>
    <li>second</li>
</ul>
_9

Kembalikan node terakhir dari set saat ini

Contoh

self appendWith(string|NodeList|\DOMNode|callable $input)
_0


peta

self appendWith(string|NodeList|\DOMNode|callable $input)
_1

Terapkan panggilan balik ke node di set saat ini dan kembalikan NodeList baru

Contoh

self appendWith(string|NodeList|\DOMNode|callable $input)
_2


mengikuti

self appendWith(string|NodeList|\DOMNode|callable $input)
_3

Kembalikan sibling segera setelah setiap node elemen di set saat ini

Opsional difilter oleh pemilih

Contoh

self appendWith(string|NodeList|\DOMNode|callable $input)
_4


followingAll

self appendWith(string|NodeList|\DOMNode|callable $input)
_5

Kembalikan semua saudara mengikuti setiap node elemen di set saat ini

Opsional difilter oleh pemilih

Contoh

self appendWith(string|NodeList|\DOMNode|callable $input)
_6


berikutSampai

self appendWith(string|NodeList|\DOMNode|callable $input)
_7

Kembalikan semua saudara mengikuti setiap node elemen dalam set upto saat ini tetapi tidak termasuk node yang cocok dengan $input

Secara opsional difilter berdasarkan masukan
Opsional difilter oleh pemilih

Contoh

self appendWith(string|NodeList|\DOMNode|callable $input)
_8


bukan

self appendWith(string|NodeList|\DOMNode|callable $input)
_9

Kembalikan node elemen dari set saat ini yang tidak cocok dengan input

Contoh

require 'vendor/autoload.php';
_00


induk

require 'vendor/autoload.php';
_01

Kembalikan induk langsung dari setiap node elemen di set saat ini

Opsional difilter oleh pemilih

Contoh

require 'vendor/autoload.php';
_02


orang tua

require 'vendor/autoload.php';
_03

Kembalikan nenek moyang dari setiap node elemen di set saat ini

Opsional difilter oleh pemilih

Contoh

require 'vendor/autoload.php';
_04


orang tuaSampai

require 'vendor/autoload.php';
_05

Mengembalikan leluhur dari setiap node elemen dalam set upto saat ini tetapi tidak termasuk node yang cocok dengan $selector

Secara opsional difilter berdasarkan masukan
Opsional difilter oleh pemilih

Contoh

require 'vendor/autoload.php';
_06


mendahului

require 'vendor/autoload.php';
_07

Kembalikan sibling tepat sebelum setiap node elemen di set saat ini

Opsional difilter oleh pemilih

Contoh

require 'vendor/autoload.php';
_08


sebelumnyaSemua

require 'vendor/autoload.php';
_09

Kembalikan semua saudara sebelum setiap node elemen di set saat ini

Opsional difilter oleh pemilih

Contoh

require 'vendor/autoload.php';
_10


sebelumnyaSampai

require 'vendor/autoload.php';
_11

Kembalikan semua saudara sebelum setiap node elemen dalam set upto saat ini tetapi tidak termasuk node yang cocok dengan $input

Secara opsional difilter berdasarkan masukan
Opsional difilter oleh pemilih

Contoh

require 'vendor/autoload.php';
_12


saudara

require 'vendor/autoload.php';
_13

Kembalikan saudara dari setiap node elemen di set saat ini

Opsional difilter oleh pemilih

Contoh

require 'vendor/autoload.php';
_14


mengiris

require 'vendor/autoload.php';
_15

Mengembalikan subset dari set saat ini berdasarkan indeks awal dan akhir

Contoh

require 'vendor/autoload.php';
_16


Metode Tambahan

menghitung

require 'vendor/autoload.php';
_17

Contoh

require 'vendor/autoload.php';
_18


setiap

require 'vendor/autoload.php';
_19

Contoh

require 'vendor/autoload.php';
_20

Lisensi

PHP DOM Wrapper dilisensikan oleh Andrew Scott di bawah BSD 3-Clause License, lihat file LICENSE untuk lebih jelasnya

Bisakah Anda menggunakan DOM di PHP?

Parser DOM bawaan memungkinkan untuk memproses dokumen XML dalam PHP .

Apa itu DOM dalam PHP?

Document Object Model (DOM) adalah API pemrograman untuk dokumen HTML dan XML . Ini mendefinisikan struktur logis dari dokumen dan cara dokumen diakses dan dimanipulasi.

Bagaimana cara membuat objek DOM di PHP?

$dom = new DOMDocument('1. 0', 'utf-8'); $element = $dom->createElement('foo', 'me & you'); $dom echo $dom->saveXML();

Bagaimana cara menginstal ekstensi DOM di PHP?

Jika versi PHP Anda bukan yang terbaru, maka Anda dapat menambahkan versi di dalamnya. #PHP7. 1 sudo apt instal php7. .
1-xml # PHP 7. 2. sudo apt instal php7
2-xml # PHP 7. 3 sudo apt instal php7
3-xml # PHP 7. 4 sudo apt instal php7
4-xml # PHP 8 sudo apt install php-xml