PHP Найти предыдущую строковую позицию - PullRequest
1 голос
/ 18 мая 2011

Есть ли способ, которым я могу искать переменную, начиная с заданной позиции, и находить начальную позицию строки, которая находится в переменной назад от заданной начальной позиции.

Так, например, если я первоначально делаю $getstart = strpos($contents, 'position', 0);

Я тогда хочу сделать $getprevpos = prevstrpos($contents, 'previous token', $getstart);

Очевидно, что нет такой функции, как prevstrpos, но я надеюсь, вы понимаете, о чем я.

Пример текстовой области (ужасный пример я сейчас): Вот пример, где я хочу найти предыдущий токен, как только я нашел начальную позицию текстовой строки.

Ответы [ 3 ]

1 голос
/ 18 мая 2011

можно strrpos( substr($contents, 0, $getstart), 'previous token')

0 голосов
/ 18 мая 2011

вы можете попробовать это.Я думаю, что это должно было бы быть для всех случаев, но вы должны, вероятно, проверить это немного.Может быть, ошибка здесь и там, но вы поняли идею.Переверните все и сделайте strpos в обратной строке

prevstrpos( $contents, $token, $start )
{
  $revToken = strrev($token);
  $revStart = strlen($token) - $start;
  $revContent = strrev($content);
  $revFoundPos = strpos( $revContent, $revToken, $revStart );
  if( $revFoundPos != -1 )
  {
    $foundPos = strlen($token) - $revFoundPos;
  }
  else
  {
    $foundPos = -1;
  }
  return $foundPos;
}
0 голосов
/ 18 мая 2011

Что-то не так с strrpos ()? Если «смещение» отрицательно: «Отрицательные значения прекратят поиск в указанной точке до конца строки.»

...