powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) не получается найти второй символ по индексу (strpos)
14 сообщений из 14, страница 1 из 1
(PHP) не получается найти второй символ по индексу (strpos)
    #38153322
alexanr00071
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу помочь с вопросом! не получается получить второе значение по номеру позиции, а первое проскакивает не понятно куда! что я не так делаю? грешу на substr!?

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
<?php
 $nStart = 0; // с какого по счету символа искать значение
 $text="texttexttext4-=Нужный текст1=-5texttext4-=Нужный текст2=-5texttexttext";
 $startvalue='4';  // начальный символ
 $endvalue='5';   //  конечный символ
 $result = FindValue($text, $nStart, $startvalue, $endvalue); // функция
 echo $result;

 function FindValue($fullText, $Pos, $keyStartValue, $keyEndValue){ // Эта функция должна искать от заданного значеня "$Pos" не с ноля
  global $nStart;
    $sRes = strtolower($fullText);//приводим к нижнему регистру
       $Pos = strpos($sRes ,strtolower($keyStartValue)); //с начала
    if ($Pos > 0){ //если значение найдено
       $Pos = $Pos + strlen($keyStartValue);//передвигаем начало поиска на след. символ за первичным ключом
       $nEnd =  strpos($sRes, $keyEndValue, $Pos); //ищем вторичный ключ
       if ($nEnd < 0){ //если не нашли окончание значения - становимся в конец строки +1 символ    ,
          $nEnd = strlen($sRes);
          $nStart = $nEnd;//возвращаем положение глобального поиска на конец строки
       }else{
          $nStart = $nEnd + strlen($keyEndValue);//возвращаем положение глобального поиска на след. символ за вторичным ключом
       }
       $sRes = substr($fullText, $Pos, $nEnd); //вычленяем значение
    }else{ //не найден первичный ключ
       $sRes = "";
       $nStart = $Pos;  //конец поиска - маска не найдена
    }
 return $sRes;
}
?>
...
Рейтинг: 0 / 0
(PHP) не получается найти второй символ по индексу (strpos)
    #38153332
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторnStart = $nEnd + strlen($keyEndValue);//возвращаем положение глобального поиска на след. символ за вторичным ключом
ты сделал мой день.
...
Рейтинг: 0 / 0
(PHP) не получается найти второй символ по индексу (strpos)
    #38153344
alexanr00071
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так помог бы с ответом!
...
Рейтинг: 0 / 0
(PHP) не получается найти второй символ по индексу (strpos)
    #38153347
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexanr00071второе значение по номеру позицииЭто о чем?
...
Рейтинг: 0 / 0
(PHP) не получается найти второй символ по индексу (strpos)
    #38153357
alexanr00071
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vklealexanr00071второе значение по номеру позицииЭто о чем?
с позиции $nStart=15 найти цифру 4 вывести
-=Нужный текст2=- и до цифры 5
...
Рейтинг: 0 / 0
(PHP) не получается найти второй символ по индексу (strpos)
    #38153373
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<?php
$nStart = 0; // с какого по счету символа искать значение
$text="texttexttext4-=Нужный текст1=-5texttext4-=Нужный текст2=-5texttexttext";
$startvalue='4';  // начальный символ
$endvalue='5';   //  конечный символ

$reg = "/.{{$nStart}}.*{$startvalue}(.*){$endvalue}/U";
if(preg_match_all($reg, $text, $matches)) {
    echo "Найдено:";
    var_dump($matches[1]);
}
else echo "Не найдено";
...
Рейтинг: 0 / 0
(PHP) не получается найти второй символ по индексу (strpos)
    #38153389
alexanr00071
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<?php
$nStart = 0; // с какого по счету символа искать значение
$text="texttexttext4-=Нужный текст1=-5texttext4-=Нужный текст2=-5texttexttext";
$startvalue='4';  // начальный символ
$endvalue='5';   //  конечный символ

$reg = "/.{{$nStart}}.*{$startvalue}(.*){$endvalue}/U";
if(preg_match_all($reg, $text, $matches)) {
    echo "Найдено:";
    var_dump($matches[1]);
}
else echo "Не найдено";



Спасибо за ответ!Работает!но не так как хотелось! только мне нужна функция с четким значениями!
...
Рейтинг: 0 / 0
(PHP) не получается найти второй символ по индексу (strpos)
    #38153395
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexanr00071с четким значениямиЭто как?
...
Рейтинг: 0 / 0
(PHP) не получается найти второй символ по индексу (strpos)
    #38153403
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowты сделал мой день.Там еще хи-хи с global есть
...
Рейтинг: 0 / 0
(PHP) не получается найти второй символ по индексу (strpos)
    #38153405
alexanr00071
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vklealexanr00071с четким значениямиЭто как?

Найдено:array(2) { [0]=> string(28) "-=Нужный текст1=-" [1]=> string(28) "-=Нужный текст2=-" }


ну типо того FindValue(Text,$Pos=0, $keyStartValue, $keyEndValue)

-=Нужный текст1=-
-=Нужный текст2=-
или
FindValue(Text,$Pos=15, $keyStartValue, $keyEndValue)
-=Нужный текст2=-

чтобы простым вызовом функции получить нужный результат! Спасибо!
...
Рейтинг: 0 / 0
(PHP) не получается найти второй символ по индексу (strpos)
    #38153412
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexanr00071чтобы простым вызовом функции получить нужный результатИдею дал. Что мешает оформить как функцию?
...
Рейтинг: 0 / 0
(PHP) не получается найти второй символ по индексу (strpos)
    #38153419
alexanr00071
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleScareCrowты сделал мой день.Там еще хи-хи с global есть

глобал нужен мне не только для первого поиска но и со второго т.к. $nStart у меня меняется в другой функции
...
Рейтинг: 0 / 0
(PHP) не получается найти второй символ по индексу (strpos)
    #38153421
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexanr00071глобал нуженПо ссылке вполне можно передать. А так даже не хихи, а вынос мозга получается.
...
Рейтинг: 0 / 0
(PHP) не получается найти второй символ по индексу (strpos)
    #38153426
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА так даже не хихи, а вынос мозга получается.
комменты тоже шедевральны
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) не получается найти второй символ по индексу (strpos)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]