簡體   English   中英

PHP 獲取標簽之間的文本 + 標簽本身

[英]PHP Get Text Between Tags + The Tags Themselves

我想獲取 [tag] 和 [/tag] 之間的所有文本,包括標簽。

所以這句話。

The cat said [tag]hi to dog[/hi] at the park.

使用這個 function。

function get_string_between($string, $start, $end){
    $string = ' ' . $string;
    $ini = strpos($string, $start);
    if ($ini == 0) return '';
    $ini += strlen($start);
    $len = strpos($string, $end, $ini) - $ini;
    return substr($string, $ini, $len);
}

我可以返回標簽之間的文本。 但我也想要標簽。 基本上我想掃描我的文本中的標簽以確保有開始和結束標簽。 然后讓我編輯內容和標簽。 因此,如果 [tag] 和 [/tag] 都存在於文本周圍,則將其更改為文本及其周圍。

我可以用 str_replace 完成它們,但我不知道如何結合搜索開始和結束標簽,並替換它們。

試試下面的代碼,基本上你需要檢測開始標簽和結束標簽,並根據需要在 substr 中包含標簽。

function get_string_between($string, $start, $end){
    $posStart = strpos($string, $start);
    if (!($posStart !== false)) return '';
    $posEnd = strpos($string, $end);
    if (!($posEnd !== false)) return '';
    $len = strlen($end);
    return substr($string, $posStart, $posEnd - $posStart + $len);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM