Что я хочу сделать, это взять строку и разделить ее на более мелкие разделы. Входные строки имеют фиксированную структуру:Разделение строки в разделах
{something here}loremipsum;loremipsum2;{something else here} ...
То, что я хотел бы сделать, это создать подстроку каждый раз, когда я найти кронштейн или «;», то есть:
{ something here }
lorem ipsum
lorem ipsum 2
{ something else here }
РНР код Я написал до сих пор не всегда хорошо, а это значит, что иногда я получаю что-то вроде {something here}loremipsum
как отдельный раздел, когда его следует разделить на два раздела.
public function divide() {
$item = "";
$splitted_instructions = str_split($this->instructions);
for($i=0; $i<count($splitted_instructions); $i++) {
if ($splitted_instructions[$i] == "{") {
while ($splitted_instructions[$i+1] != "}") {
$i++;
$item .= $splitted_instructions[$i];
}
$item = "{" . $item . "}";
$items[] = $item;
$item = "";
} else {
while ($splitted_instructions[$i+1] != ";" && $i<count($splitted_instructions)) {
$i++;
$item .= $splitted_instructions[$i];
}
$items[] = $item;
$item = "";
}
}
print_r($items);
}
Конечно, если есть лучший способ сделать это, пожалуйста, дайте мне знать :)
Я не уверен, что полный код , но я ожидал бы, что несколько вызовов «взорваться» и, возможно, «разбить» могут выполнить эту работу. – Chris
@Chris Спасибо за комментарий, который мог бы также работать. Я думаю, – user1301428