Мне нужна помощь с преобразованием строки в PHP. Я пытался делать это часами, но я могу только конвертировать простые скрипты с помощью str_replace ().
Я пытаюсь конвертировать пользовательский скрипт ниже:
<start=0:03>Line one goes here<end=0:09>
<start=0:09>Line two goes here<end=0:12>
<start=0:20>Line three goes here<end=0:26>
<start=0:32>Line four goes here<end=0:42>
В новый скрипт с тегами привязки, такими как это:
<a href="?start=0:03&end=0:09">Line one goes here</a>
<a href="?start=0:09&end=0:12">Line two goes here</a>
<a href="?start=0:20&end=0:26">Line three goes here</a>
<a href="?start=0:32&end=0:42">Line four goes here</a>
Может кто-нибудь помочь, пожалуйста?
Спасибо.
Для такого рода немного сложного поиска / замены наиболее удобно использовать шаблон регулярных выражений с preg_replace
:
$re = '/<(start=\d+:\d+)(>.*?<)(end=\d+:\d+)>/s';
$subst = '<a href="?$1&$3$2/a>';
$result = preg_replace($re, $subst, $yourstring);
детали шаблона:
/ # pattern delimiter
< # literal <
(start=\d+:\d+) # group 1: literal "start=", one or more digits,
# literal ":" and one or more digits
(>.*?<) # group 2: literal >, all characters until <, that must be followed
(end=\d+:\d+>) # by capture the group 3
/s # pattern delimiter, and s modifier
По умолчанию .
соответствует всем символам, кроме символа новой строки, модификатор s также позволяет ему соответствовать символам новой строки.
замена:
$1
, $2
, $3
относится к контенту, захваченному группами
Других решений пока нет …