<?php

function split_columns ($string, $indices) {
	$pat =  "";
	foreach ($indices as $key => $id) {
		if ($key==0) { 
			$pat .= "(.{" . $id . "})";
		} else if ($key<count($indices)) {
			$pat .= "(.{" . ($id-$indices[$key-1]) . "})";
		}
	}
	$pats = '~^'.$pat.'(.*)$~m';
	preg_match_all($pats, $string, $arr);
	return array_slice($arr, 1);
}
$string = "11234567891234567\n11234567891234567"; // 1: '1', 2: '123456789', 3: '1234', 4: '567'
print_r (split_columns($string, $positions=array(1, 10, 14)));