Я натолкнулся на следующий код, который имеет регулярное выражение, которое я не понимаю.
В частности:
'#<!-- START '. $tag . ' -->(.+?)<!-- END '. $tag . ' -->#si'
PHP говорит, что функция preg_match вернет следующее:
«Если указаны совпадения, то они заполняются результатами поиска. $ Matches [0] будет содержать текст, который соответствует полному шаблону, $ matches [1] будет иметь текст, сопоставляющий первый захваченный скобок в скобках, и так .
Я полагаю, что
(.+?)
является таким «заключенным в скобки подшаблоном». Где я могу прочитать о подшаблонах? Официальное место, которое не похоже на w3schools.com.
/** * Gets a chunk of page content * @param String the tag wrapping the block ( <!-- START tag --> block <!-- END tag --> ) * @return String the block of content */ public function getBlock( $tag ) { preg_match ('#<!-- START '. $tag . ' -->(.+?)<!-- END '. $tag . ' -->#si', $this->content, $tor); $tor = str_replace ('<!-- START '. $tag . ' -->', "", $tor[0]); $tor = str_replace ('<!-- END ' . $tag . ' -->', "", $tor); return $tor; }
Любые объяснения вместе со ссылками были бы полезными!
Благодаря!