2012-03-12 2 views
-3

я пытаюсь извлечь подстроку из строки gettting из базы данных MySQL с помощью функции substr:экстракцию подстроки в соответствии с заданными начальными и конечными точками

substr($mystring,$startpoint,$endpoint); 

здесь начальной и конечной точкой может быть любое количество.

Но я не получаю gesired результат. Точка Ptart работает, но что-то не так с конечной точкой.

В чем причина?

Редактировать

когда я Pasin начать анс конечную точку, как 15 и 50, начальная точка работает нормально, так результирующую строка, начиная с 15-го полукокса основной строки. но конечная точка не работает, она дает мне meand end char в результирующей строке не 50-й основной строки.

+1

Чтобы спросить причину, сначала вы должны показать проблему? Где полный код. И какова ошибка, которую вы получаете? – Starx

+0

вы должны предоставить нам еще несколько строк кода, чтобы мы могли определить, какие значения '$ startpoing' и' $ endpoint' ... – Michal

+0

исправьте свой английский и добавьте образец кода – soju

ответ

0

Вы должны вычесть $endpoint-$startpoint и передать его в качестве третьего параметра для получения желаемого результата.

, как показано ниже:

substr($mystring,$startpoint,($endpoint-$startpoint)); 
+0

Спасибо. .. Работал как шарм. –

3

Я предполагаю, что вы перепутали конечную точку с длиной. Третий параметр substring() - это длина строки - таким образом, количество символов из начальной точки. Не индекс последнего символа.

<?php 
$str = "A short string"; 
echo substr($str, 2, 2); // Prints sh 
echo substr($str, 2, 4); // Prints shor 
?> 

Если вы хотите, чтобы указать конечную точку, можно вычислить длину путем вычитания из вашей начальной enpoint:

<?php 
$startpoint = 2; 
$endpoint = 5; 
$str = "A short string"; 
echo substr($str, $startpoint, ($endpoint - $startpoint)); // Prints sho 
?> 
+0

Да, ваша точка зрения. Но что делать, если хотите получить подстроку между заданным началом и конечной точкой. –

+0

@nikhil Вы можете рассчитать длину. См. Мой обновленный пример. –

+0

: Спасибо тоже. Помог мне много –

0

строка подстрока (строка $ строка, Int $ начать [, Int $ длина])

, что означает:

<?php 
$text = "foobar text"; 
$startpoint = 0; 
$endpoint = $startpoint + strlen($text); 
echo substr($text, $startpoint, $endpoint); 
?> 
1

третий параметр для указания длины от начальной точки.

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

Попробуйте ниже, это будет работать.

substr($string,$startpoint,($endpoint-$startpoint)); 
Смежные вопросы