Я искал быстрый способ разбить строку в заданной позиции.
Почему данная должность? Обычно вам нужно разделить символ (я думаю, что вы искали по позиции, потому что функция разнесения разбила бы строку на слишком много частей):
Мое решение было наконец:
$string = "hello world my dear";
list ($first, $remaining ) = split (' ', $string, 2); //limit to 2 pieces
echo $first; //"hello";
echo $remaining; //"world my dear";
Обратите внимание, что я отказался от использования "position" (я использовал "substr", чтобы получить его).
Учитывая, что ваша потребность в "позиции" не была действительно необходимой, мое решение является самым быстрым среди всех вышеупомянутых и не имеет многобайтовых проблем. Также я думаю, что это намного легче читать.
К сожалению, эта функция устарела в последнем PHP, вы можете использовать ее, если у вас старый PHP или вы можете использовать preg_split. Я был не очень доволен этим, потому что единственный способ достичь той же функциональности - злоупотреблять регулярными выражениями. Если вы не можете использовать split
, самая быстрая альтернатива:
$string = "hello world my dear";
list ($first, $remaining ) = preg_split('/\s+/', $string, 2);
, который намного быстрее, чем ответ @rubber и вообще не использует позицию.
Ссылка:
Разделенная документация