Есть ли способ найти слово в строке, имея одну из позиций буквы в строке. Я имею в виду, есть ли простой способ сделать это.
У меня есть строка, например, с 250 символов и 70 слов. Мне нужно ограничить строку в моем div, поэтому мне нужно получить всю строку с полными словами до 100 символов.
Это не просто. Вы автомобиль используете эту функцию.
$string = "Hello world I use PHP";
$position = 7;
function getWordFromStringInPosition ($string, $position)
{
if (strlen($string) == 0) throw new Exception("String is empty.");
if ($position > strlen($string) || $position < 0) throw new Exception("The position is outside of the text");
$words = explode(" ", $string);
$count = 0;
foreach ($words as $word)
{
if ($position > $count && $position < $count + strlen($word) + 1)
{
return $word;
}
else
{
$count += strlen($word) + 1;
}
}
}
echo getWordFromStringInPosition ($string, $position); // world
У меня есть строка, например, 250 символов и 70 слов. Мне нужно
ограничить строку в моем div, поэтому мне нужно, чтобы получить всю строку слов
до символа 100.
Вот кое-что, что я смог бросить вместе:
function getPartialString($string, $max)
{
$words = explode(' ', $string);
$i = 0;
$new_string = array();
foreach ($words as $k => $word)
{
$length = strlen($word);
if ($max < $length + $i + $k)
{
break;
}
$new_string[] = $word;
$i += $length;
}
return implode(' ', $new_string);
}
echo getPartialString('this is a test', 6); // this
echo getPartialString('this is a test', 7); // this is
вот самый простой ответ:
substr($text, 0, strrpos(substr($text, 0, 100), " " ));