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) _
Contohrequire 'vendor/autoload.php';_0
Hasil
require 'vendor/autoload.php';_1
appendTo
require 'vendor/autoload.php';_2
Contohrequire '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
Contohuse 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
Contohuse 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
Contohuse 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
Contohself addClass(string|callable $class) 0
Hasil
self addClass(string|callable $class) 1
kosong
self addClass(string|callable $class) 2
self addClass(string|callable $class) _3
Hasil
self addClass(string|callable $class) _4
hasClass
self addClass(string|callable $class) 5
Contohself 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
Contohteks
<p class="text-center">first paragraph</p><p class="text-center">second paragraph</p>_6
Contohmembuka
<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
Contohself 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
Contohself 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
Contohself 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
Contohself 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
Contohself 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
Contohself 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
Contohself 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
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
Contohrequire '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
Contohrequire '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
Contohrequire '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
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
Contohrequire '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
Contohrequire '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
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
Contohrequire 'vendor/autoload.php';_14
mengiris
require 'vendor/autoload.php';_15
Mengembalikan subset dari set saat ini berdasarkan indeks awal dan akhir
Contohrequire 'vendor/autoload.php';_16
Metode Tambahan
menghitung
require 'vendor/autoload.php';_17
Contohrequire 'vendor/autoload.php';_18
setiap
require 'vendor/autoload.php';_19
Contohrequire 'vendor/autoload.php';_20
Lisensi
PHP DOM Wrapper dilisensikan oleh Andrew Scott di bawah BSD 3-Clause License, lihat file LICENSE untuk lebih jelasnya