Ну, просто извлеките и выведите токены, которые вас интересуют:
<?php
$input = "Lorem ispum dolor text si sample dummy text.";
preg_match('/^(\w+\s+\w+)\s+(.*)$/', $input, $token);
echo sprintf("<div>%s</div>\n<span>%s</span>\n", $token[1], $token[2]);
Очевидно, что вывод:
<div>Lorem ispum</div>
<span>dolor text si sample dummy text.</span>
То же самое, конечно, возможно и при использовании explode()
,но гораздо более сложный:
<?php
$input = "Lorem ispum dolor text si sample dummy text.";
$word = explode(" ", $input);
echo sprintf("<div>%s %s</div>\n", $word[0], $word[1]);
unset($word[0]);
unset($word[1]);
echo sprintf("<span>%s</span>\n", implode(" ", $word));
ОБНОВЛЕНИЕ:
Первая альтернатива, основанная на регулярном выражении, работает только для истинных «слов», которые определены довольно строго.Вы можете несколько «ослабить» это строгое поведение, немного изменив выражение:
<?php
$input = "What we've Done";
preg_match('/^([^\s]+\s+[^\s]+)\s+(.*)$/', $input, $token);
echo sprintf("<div>%s</div>\n<span>%s</span>\n", $token[1], $token[2]);
С этой модификацией результат снова будет таким, как ожидалось:
<div>What we've</div>
<span>Done</span>