Это код:
<?php
$string = 'Hey there buddy';
$token = strtok($string, ' ');
while($token !== false)
{
echo $token."<br/>";
$token = strtok(' ');
}
?>
Я просто хочу знать, правильно ли я понимаю. Вот что я думаю о strtok (). Чтобы использовать strtok (), сначала вы должны установить для него переменную (в этом случае $ token) с входной строкой (в этом случае $ string) и разделителем (в данном случае »). И затем вам придется использовать его снова в цикле while, но на этот раз укажите только разделитель, а не входную строку, потому что он уже подключен к переменной $ string во время нашего первого использования. Я прав?
Да, strtok
держит внутренний буфер от первого населения с $string
, Впоследствии он возвращает части этого; всякий раз, когда вы передаете его, просто новый персонаж для разделения.
Вы можете сократить цикл с делать пока построить, кстати:
do {
echo $token."<br/>";
}
while (is_str($token = strtok(' ')));
Это также недостаток strtok
тем не мение. Поскольку он работает с глобально-внутренним строковым буфером, вы можете использовать только один такой цикл — он не подходит для параллельного разделения подстрок или для работы с другим буфером рядом.
Хотя, когда вы просто разделяете с одним разделителем, вы можете также использовать наиболее часто используемую функцию PHP: explode
.
Других решений пока нет …