❮ 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];
?>
Đị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
- 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]. "
";
?>
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ô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
- Bản thân chuỗi phần tử HTML
- Chuỗi thuộc tính của phần tử HTML
- 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ấyNó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