Php trích xuất phần tử html từ chuỗi

❮ Tham chiếu chuỗi PHP

Ví dụ

Trả về "thế giới" từ chuỗi

echo substr["Xin chào thế giới",6];
?>

Tự mình thử »

Định nghĩa và cách sử dụng

Hàm substr[] trả về một phần của chuỗi

cú pháp

chất nền [chuỗi, bắt đầu, độ dài]

Giá trị tham số

Tham sốChuỗi mô tảBắt buộc. Chỉ định chuỗi trả về một phần củastartRequired. Chỉ định nơi bắt đầu trong chuỗi
  • Một số dương - Bắt đầu tại một vị trí xác định trong chuỗi
  • Số âm - Bắt đầu tại một vị trí đã chỉ định từ cuối chuỗi
  • 0 - Bắt đầu từ ký tự đầu tiên trong chuỗi
chiều dàiTùy chọn. Chỉ định độ dài của chuỗi trả về. Mặc định là đến cuối chuỗi
  • Một số dương - Độ dài được trả về từ tham số bắt đầu
  • Số âm - Độ dài được trả về từ cuối chuỗi
  • Nếu tham số độ dài là 0, NULL hoặc FALSE - nó trả về một chuỗi rỗng

chi tiết kỹ thuật

Giá trị trả về. Trả về phần được trích xuất của chuỗi hoặc FALSE nếu lỗi hoặc chuỗi trống Phiên bản PHP. 4+Nhật ký thay đổi. PHP7. 0 - Nếu string = start [dài ký tự], nó sẽ trả về một chuỗi rỗng. Các phiên bản trước đó trả về FALSE.
PHP 5. 2. 2 - 5. 2. 6 - Nếu bắt đầu có vị trí cắt ngắn âm, FALSE được trả về. Các phiên bản khác lấy chuỗi từ đầu.

Thêm ví dụ

Ví dụ

Sử dụng tham số bắt đầu với các số dương và số âm khác nhau

echo substr["Xin chào thế giới",10]. "
";
echo substr["Xin chào thế giới",1]. "
";
echo substr["Xin chào thế giới",3]. "
";
echo substr["Xin chào thế giới",7]. "
";

echo substr["Xin chào thế giới",-1]. "
";
echo substr["Xin chào thế giới",-10]. "
";
echo substr["Xin chào thế giới",-8]. "
";
echo substr["Xin chào thế giới",-4]. "
";
?>

Tự mình thử »

Ví dụ

Sử dụng các tham số bắt đầu và độ dài với các số dương và số âm khác nhau

echo substr["Xin chào thế giới",0,10]. "
";
echo substr["Xin chào thế giới",1,8]. "
";
echo substr["Xin chào thế giới",0,5]. "
";
echo substr["Xin chào thế giới",6,6]. "
";

echo substr["Xin chào thế giới",0,-1]. "
";
echo substr["Xin chào thế giới",-10,-2]. "
";
echo substr["Xin chào thế giới",0,-6]. "
";
?>

Tự mình thử »

❮ Tham chiếu chuỗi PHP

Tôi muốn trích xuất các thẻ HTML và nội dung của nó từ một chuỗi. Nội dung [đầu vào] được truy vấn từ cơ sở dữ liệu WordPress

Dữ liệu mẫu [đầu vào]

Tôi trích xuất dữ liệu giả này từ cơ sở dữ liệu WordPress của mình. https. //www. php regex trực tiếp. com/p/tan
Tôi tin rằng điều này sẽ bao gồm tất cả các thẻ cần thiết để phân tích cú pháp.

Kỳ vọng [đầu ra]

Chấp nhận chuỗi định dạng HTML làm đầu vào. Đầu ra sẽ có thể trả về một chuỗi có thể là bất kỳ chuỗi nào trong số này

  1. Bản thân chuỗi phần tử HTML
  2. Chuỗi thuộc tính của phần tử HTML
  3. Các nút văn bản, chuỗi nút con của phần tử HTML

Nỗi lo của tôi

  • Giải pháp nào mất ít thời gian thực hiện hơn?
  • Giải pháp nào tiết kiệm bộ nhớ máy chủ hơn?
  • Lỗ hổng bảo mật của từng giải pháp

Tôi đã tự nghĩ ra 2 giải pháp. Nó hoạt động tốt, nhưng tôi không biết cái nào tốt cho trường hợp của mình

$el = 'li'; // Ex
$match = []; // Reserving for results

/**
 * Regex - extract HTML tag and its content
 * Array map:
 * x[0] = everything
 * x[1] = open tag
 * x[2] = attributes
 * x[3] = content & end tag
 * x[4] = content only
 * 
 * Note for content: including text node + children node
 */
$reg = '/[][[\n*?.*?\n*?]|]/';

if [preg_match[$reg, $html_str, $match]] { echo 'Moving onward!';}

Kết quả. xem bản demo của regex

$dom = new DomDocument[];
$content = mb_convert_encoding[
    get_the_content[null, true], # WordPress func, it gives input str
    'HTML-ENTITIES',
    'UTF-8'
];
$dom->loadHTML[$content];

$el = $doc->getElementsByTagName['li'];

Kết quả. trả về một DOMNodeList và tôi phải thực hiện thêm một số tác vụ để in nó thành một chuỗi có thể được sử dụng

Phương thức Mô tả $e->children [ [int $index] ] Trả về đối tượng con thứ N nếu chỉ mục được đặt, nếu không thì trả về một mảng con. $e->parent[] Trả về phần tử cha của phần tử. $e->first_child[] Trả về phần tử con đầu tiên, hoặc null nếu không tìm thấy. $e->last_child[] Trả về phần tử con cuối cùng hoặc null nếu không tìm thấy. $e->next_sibling [] Trả về anh chị em tiếp theo của phần tử hoặc null nếu không tìm thấy. $e->prev_sibling [] Trả về anh chị em trước đó của phần tử hoặc null nếu không tìm thấy

Nói chung, phân tích cú pháp là chuyển đổi một loại dữ liệu này sang loại dữ liệu khác. Nó có nghĩa là làm thế nào chúng ta có thể chuyển đổi các loại dữ liệu khác nhau sang HTML. Ví dụ. Chuyển đổi chuỗi thành HTML

Tại sao chúng ta cần phân tích cú pháp?

Để thêm dữ liệu động [nội dung HTML] tại một điểm nhất định trong mã PHP, chúng ta cần phân tích cú pháp. Ví dụ. Để thêm dữ liệu [thông tin] ở dạng HTML, chúng ta cần tạo mẫu động đó ở dạng chuỗi và sau đó chuyển đổi nó thành HTML

Làm cách nào để lấy thẻ từ chuỗi HTML trong PHP?

Phương pháp 1. Sử dụng hàm htmlspecialchars[] . Hàm htmlspecialchars[] là một hàm có sẵn trong PHP, được sử dụng để chuyển đổi tất cả các ký tự được xác định trước thành các thực thể HTML. $chuỗi. Tham số này được sử dụng để giữ chuỗi đầu vào. $flags. Tham số này được sử dụng để giữ các cờ.

Làm cách nào để xóa thẻ HTML trong PHP?

Hàm strip_tags[] tách một chuỗi khỏi các thẻ HTML, XML và PHP. Ghi chú. Nhận xét HTML luôn bị tước. Điều này không thể thay đổi với tham số allow.

Làm cách nào để chỉ lấy văn bản từ chuỗi trong PHP?

Trả lời. Sử dụng hàm PHP substr[] . e. một phần của một chuỗi từ một chuỗi. Hàm này lấy tham số bắt đầu và độ dài để trả về phần của chuỗi.

Làm cách nào để lấy thẻ trong PHP?

Thành phần DOMElement. Hàm getElementsByTagName[] là một hàm sẵn có trong PHP được sử dụng để lấy các phần tử theo tên thẻ. .
cú pháp
Thông số. Hàm này chấp nhận một tham số duy nhất $name chứa tên thẻ hoặc sử dụng * để nhận tất cả các thẻ

Chủ Đề