PHP: найдите значение в строке и используйте эту позицию, чтобы разбить строку на два

  1. Мне нужно найти <?target?> с (динамической) строкой ($string)
  2. Возьми все до <?target?> и назначить его $a
  3. Возьми все после <?target?> и назначить его $b
  4. В моем случае у меня есть только один экземпляр <?target?> (Но хорошо, что есть варианты =)

Поскольку мне трудно объяснить, что я пытаюсь сделать, я приведу вам пример с псевдо-кодом:

$string =
"Pellentesque habitant
morbi tristique senectus
<?target?>
et netus et malesuada
fames ac turpis
egestas.";

FinctionToFindAndSplit ( '<?target?>' );
$a =
"Pellentesque habitant
morbi tristique senectus";

$b =
"et netus et malesuada
fames ac turpis
egestas.";

0

Решение

просто взорваться () должно сработать:

list($a, $b) = explode('<?target?>', $string);

В зависимости от того, что вы хотите сделать, если несколько <?target?> найдены вы можете использовать как есть, чтобы отказаться от того, что после других или использовать третий аргумент 2 ограничить взрыв и то, что возвращается.

3

Другие решения

Это должно работать для вас:

Просто explode() строка вашего разделителя. Также обратите внимание, что я ограничил вывод 2 элементами! Поэтому, если в строке несколько разделителей, используется только первый, а остальные просто игнорируются.

<?php

$arr = explode("<?target?>", $string, 2);
$a = $arr[0];
$b = $arr[1];

?>
1

По вопросам рекламы [email protected]