Как разбить строку на основе позиции

Я хочу разбить переменную на основе позиции символов. В результате первая строка должна иметь предыдущую позицию перед указанной позицией, а другая строка должна содержать другие части.

Предположим, если у меня есть переменная $var = "2013AD"; я хочу

$var1 = 2013 и var2 = 'AD' .

Как я могу это достичь?

Ух … Пойду сюда бритву оккума, но субстрат ?

 $var1 = substr($var, 0, 4); $var2 = substr($var, 4); 

Вы можете просто использовать sscanf

 $var = "2013AD"; list($var1, $var2) = sscanf($var, "%4d%2s"); echo $var1, ":", $var2; 

Вывод

 2013:AD 

И если вы работаете с date рассматривайте ее как таковую:

 $var = "2013AD"; $date = DateTime::createFromFormat("Y\A\D",$var); echo $date->format("Y"); 
 <?php function py_slice($input, $slice) { $arg = explode(':', $slice); $start = intval($arg[0]); if ($start < 0) { $start += strlen($input); } if (count($arg) === 1) { return substr($input, $start, 1); } if (trim($arg[1]) === '') { return substr($input, $start); } $end = intval($arg[1]); if ($end < 0) { $end += strlen($input); } return substr($input, $start, $end - $start); } print py_slice('abcdefg', '2') . "\n"; print py_slice('abcdefg', '2:4') . "\n"; print py_slice('abcdefg', '2:') . "\n"; print py_slice('abcdefg', ':4') . "\n"; print py_slice('abcdefg', ':-3') . "\n"; print py_slice('abcdefg', '-3:') . "\n"; ?> 

Результат из примеров:

  • с
  • CD
  • cdefg
  • ABCD
  • ABCD
  • EFG

вы можете использовать функцию substr

 $var1 = substr($var, 0, 4); $var2 = substr($var, 4);