Hướng dẫn convert html to array php - chuyển đổi html sang mảng php

0

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Giả sử chuỗi HTML như thế này:

$str = '

Hello World!


';

Có thể chuyển đổi nó thành một mảng như thế này?

[0] => '

Hello World!

' [1] => '

' [2] => '' [3] => '
' [4] => '

'

Tôi đã thử sử dụng DomDocument nhiều cách khác nhau nhưng vấn đề dường như luôn luôn sôi sục để nuôi dạy con cái. Tôi cần phải đi qua HTML mà không quan tâm đến các mối quan hệ cha mẹ/con cái.

Khi được hỏi ngày 12 tháng 5 năm 2016 lúc 1:10May 12, 2016 at 1:10

Greenergreenergreener

4.93713 Huy hiệu vàng 50 Huy hiệu bạc93 Huy hiệu Đồng13 gold badges50 silver badges93 bronze badges

7

Câu trả lời của @olibiaz sẽ làm ..

Chỉ muốn hiển thị một cách khác để làm điều này bằng cách sử dụng preg_split.

$str = '

Hello World!


'; $flags = PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY; $regex = '/[]/'; $parts = preg_split[ $regex, $str, -1, $flags];

OUTPUT:

array [size=5]
    0 => string '

Hello World!

' [length=19] 1 => string '

' [length=29] 2 => string '' [length=21] 3 => string '
' [length=6] 4 => string '

' [length=4]

Đã trả lời ngày 12 tháng 5 năm 2016 lúc 2:04May 12, 2016 at 2:04

Bạn có muốn sử dụng phần mở rộng PHP DOM cho việc này không? Ngoài ra, bạn có thể phát nổ đơn giản trên Newlines như sau:

var_dump[explode["\n", $html]];

Kết quả là:

Array
[
    [0] => 

Hello World!

[1] =>

[2] => [3] =>
[4] =>

]

Đã trả lời ngày 12 tháng 5 năm 2016 lúc 1:16May 12, 2016 at 1:16

TechnideVtechnidevTechnidev

961 Huy hiệu bạc4 Huy hiệu đồng1 silver badge4 bronze badges

3

Bạn có thể sử dụng Regex để đạt được điều đó.

$input = '

Hello World!


'; $regex = '/[]/'; $result = []; preg_match_all[$regex, $input, $result]; $result = $result[0];

[0] => '

Hello World!

' [1] => '

' [2] => '' [3] => '
' [4] => '

'
0 sẽ trông giống như

array[5] {
  [0] =>
  string[19] "

Hello World!

" [1] => string[29] "

" [2] => string[21] "" [3] => string[6] "
" [4] => string[4] "

" }

Nhưng hai điều quan trọng:

  • Để chắc chắn mô hình regex này có thể được cải thiện, nó giống như một ví dụ.improved, its more like an example.
  • Kiểm tra nó trên các trường hợp khác nhau vì tôi đã thực hiện một bài kiểm tra về đầu vào ví dụ cụ thể của bạn và nó có thể thất bại trên cấu trúc phức tạp hơn. Trong trường hợp này thích ứng với nhu cầu của bạn. since i made a test on your particular example input and it could failed on more complex structure. In this case adapt it to your needs.

Đã trả lời ngày 12 tháng 5 năm 2016 lúc 1:58May 12, 2016 at 1:58

Olibiazolibiazolibiaz

2.5144 Huy hiệu vàng28 Huy hiệu bạc31 Huy hiệu đồng4 gold badges28 silver badges31 bronze badges

Không có giải pháp Regex:

$str = '

Hello World!


'; $tags = explode[ '|', str_replace['>|

Bài Viết Liên Quan

Chủ Đề