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

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

Drupal 8 過濾器或標記來替換文本塊中的多個模式

Drupal 8 過濾器或標記來替換文本塊中的多個模式

PHP
冉冉說 2022-01-02 19:33:06
我不太確定如何問這個,但是,我想看看是否有辦法制作 D8 過濾器或標記,我可以用它來搜索文本,并用其他東西替換部分。最終結果將是能夠在輸入正文字段時添加類似的內容:[amzn 0970810458]',然后在查看時,括號中的部分將替換為指向該 ISBN 編號在亞馬遜上的書籍的鏈接。我能夠制作一個能夠在文本字符串中找到 ISBN 編號的測試代碼:$source_string = ("Lorem ipsum dolor sit amet, [amzn 0970810458] consectetur adipiscing elit. Mauris facilisis felis eu turpis ultrices molestie. Donec vel ornare eros. Integer pharetra hendrerit tincidunt. Nunc in magna vitae nibh tempus pulvinar. Cras lacinia nibh ac justo placerat pretium. Mauris volutpat non ligula sit amet tempus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. [amzn 097081044X] Suspendisse tincidunt tristique ante.");preg_match_all("/\[amzn([^\]]*)\]/", $source_string, $matches);$isbns = array_unique($matches[1]);foreach($isbns as $isbn) {    $last_isbn = $isbn;            echo $isbn;}問題是,除非我可以使用諸如“strpos”之類的東西來獲取每個 ISBN 號,將其粘貼到 URL 中,然后用正確的鏈接替換括號中的部分,否則這毫無用處。然后我需要看看它是否可以在 Drupal 過濾器中工作。也許我正在嘗試做一些不可能的事情,所以我希望這里有人可以告訴我我是否瘋了。
查看完整描述

1 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

我不認為你瘋了。用鏈接替換括號內的文本實際上并不困難,因為您可以使用您提供preg_replace的內容進行替換,而不是像strpos您描述的那樣:


$source_string = ("Lorem ipsum dolor sit amet, [amzn 0970810458] consectetur adipiscing elit. Mauris facilisis felis eu turpis ultrices molestie. Donec vel ornare eros. Integer pharetra hendrerit tincidunt. Nunc in magna vitae nibh tempus pulvinar. Cras lacinia nibh ac justo placerat pretium. Mauris volutpat non ligula sit amet tempus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. [amzn 097081044X] Suspendisse tincidunt tristique ante.");


$result = preg_replace("/\[amzn ([^\]]*)\]/", "<a href='https://www.amazon.com/dp/$1'>$1</a>", $source_string);


echo $result; 

查看一些指南,為此實現 Drupal 8 過濾器應該不會太難。


編輯: 如果您也想定義標題,則可以使用您的格式這樣做:


彈頭: [amzn 0970810458 "The Title of This Book"]


正則表達式: preg_replace('/\[amzn ([^\s]+) "(.+?)"\]/', '<a href="https://www.amazon.com/dp/$1">$2</a>', $source_string);


有關上述完整示例,請參閱https://3v4l.org/U9PHS。


有許多不同的格式化方法。您描述的方式很好,只是請注意,如果例如書名包含雙引號,則需要一些額外的代碼來處理。


查看完整回答
反對 回復 2022-01-02
  • 1 回答
  • 0 關注
  • 150 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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