亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

提取兩個值之間的所有字符串

提取兩個值之間的所有字符串

PHP
慕俠2389804 2022-11-12 13:53:21
我嘗試從文本中提取兩個值之間的所有值,例如:<p>/<\/p> 現在我只能提取第一個值。public 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);}$fullstring = '[{"content":{"content":"<h1>Acceptances<\/h1>","numbering":""},"children":[{"content":{"content":"<p><span>Ownership of the Products remains with the [X] and will not pass to the [Y] until one of the following events occurs:<\/span><\/p>","numbering":""},"children":[{"content":{"content":"<p><span>The [X] is paid for all of the Products and no other amounts are owed by the [Y] to the [X] in respect of other Products supplied by the [X].<\/span><\/p>","numbering":""},"children":[]},{"content":{"content":"<p><span>The [Y] sells the Products in accordance with this agreement in which case ownership of the Products will pass to the [Y] immediately before the Products are delivered to the [Y]&#039;s customer.<\/span><\/p>","numbering":""},"children":[]}]},{"content":{"content":"<p><span>Where the Products are attached to or incorporated in other Products or are altered by the [Y], ownership of the Products shall not pass to the [Y] by virtue of the attachment, incorporation or alteration if the Products remain identifiable and, where attached to or incorporated in other Products, can be detached or removed from them.<\/span><\/p>","numbering":""}';$paragraph_start_1 = '<p>';$paragraph_end_2 = '<\/p>';$paragraph = $this->get_string_between($fullstring, $paragraph_start_1, $paragraph_end_2);//The output is just the first one and I need all.
查看完整描述

1 回答

?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

改用正則表達式:


public function get_string_between($string, $start, $end)

{

    $re = $start.'(.*?)'.$end.'/m';


    preg_match_all($re, $string, $matches, PREG_SET_ORDER, 0);


    return($matches);

}

如果要測試正則表達式:


$re = '/<p>(.*?)<\\\\\/p>/m';

$str = '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam pulvinar sollicitudin risus, et aliquam ante efficitur non. Pellentesque vel lorem euismod, efficitur turpis eu, vehicula tellus. Aliquam pretium nulla a ex sollicitudin fringilla. Praesent lacus nibh, consequat nec imperdiet nec, volutpat id lacus. Suspendisse tristique nisl sapien, imperdiet lobortis lectus vulputate dapibus. Curabitur vulputate enim felis. Curabitur vehicula risus et nisi vehicula luctus. Quisque id urna ut sem volutpat accumsan. Curabitur ut odio faucibus massa ultricies auctor. Curabitur id vulputate mi, dignissim varius turpis. In hac habitasse platea dictumst. Proin suscipit ex ut neque facilisis pellentesque. Ut et efficitur sapien.</p>

<p>Nulla facilisi. Phasellus maximus dui sed maximus sodales. Aliquam imperdiet est a elit sollicitudin, id lobortis lectus vehicula. Sed ut accumsan ligula. Maecenas id scelerisque risus, non pharetra nisi. Praesent rhoncus sem turpis, sed fermentum orci aliquet et. Sed vitae turpis id eros commodo maximus. Praesent fringilla eros nisl, ac cursus mauris iaculis vel. Donec vulputate ornare augue eget pulvinar.</p>';


preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);


// Print the entire match result

var_dump($matches);


查看完整回答
反對 回復 2022-11-12
  • 1 回答
  • 0 關注
  • 125 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號