Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Парсинг строки

Сообщения:  [1-10]    [11-20]  [21-23] 

 
 автор: technic611   (17.05.2012 в 22:17)   письмо автору
 
   для: confirm   (17.05.2012 в 18:16)
 

ой да, действительно, достаточно проверки на пробел )))

  Ответить  
 
 автор: confirm   (17.05.2012 в 18:16)   письмо автору
 
   для: technic611   (17.05.2012 в 17:44)
 

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

Если сверять с тем, что в массиве, тогда достаточно in_array(). Вот только что-то я не пойму - эти символы такие же равноценные как и абвгд..., и если они участвуют в поиске, то зачем их выделять особо? Если не участвуют, то тогда я смысла поиска не понимаю.

  Ответить  
 
 автор: technic611   (17.05.2012 в 17:44)   письмо автору
 
   для: confirm   (17.05.2012 в 17:06)
 

в блокноте писал.
массив такой
array(',', '-', '_') 
проверка вместо этого
if($cmp[$k]==true || $cmp[$k]==" ")


масив можно прогнать и проверить на разделители строк, только как? и что скажете насчет кода, правильный он или нет...

  Ответить  
 
 автор: confirm   (17.05.2012 в 17:06)   письмо автору
 
   для: technic611   (17.05.2012 в 17:00)
 

Как вы такой код читаете, все по левому краю и отступов ноль? )

В смысле точка, запятая... не учитывать или просто проверять? Опять не используя строковых функций?
Массив чего?

  Ответить  
 
 автор: technic611   (17.05.2012 в 17:00)   письмо автору
 
   для: confirm   (17.05.2012 в 12:14)
 

спасибо. сделал так.
подскажите, как сделать проверку если между строк тире, запятая. как создать массив и его просканить

<? 
function search($str$cmp)
{

$i 0
$pos = -1;
$vhod=0;
 
while(@
$str[$i]) { 
  if(
$str[$i]==$cmp[0] && $pos<$vhod

{

$pos $i

     




$k=$i;
while(@
$cmp[$k]) 



if(
$cmp[$k]==true || $cmp[$k]==" ")
{

if(
$str[$pos+$k]==$cmp[$k]) $pos $pos;
else 
$vhod=$pos+1

}
$k++;
}


}
$i++;
}

echo 
"Подстрока найдена на позиции: $pos";
}


$str 'irrirgyyyihoiirrgyu  ytrew'
$cmp 'trew'

search ($str$cmp);

?>

  Ответить  
 
 автор: Красная_шляпа   (17.05.2012 в 14:12)   письмо автору
 
   для: technic611   (17.05.2012 в 12:03)
 



<?php 

$search 
'611'
$haystack 'technic611 - ololol xddd lolka'

$pos false;
$i 0;

while (@
$c $haystack[$i]) { 
    if (
$c == $search[0]) { 
        
$pos $i;        
        
$j 0;
        
$k 1;
        
        while (@
$c1 $search[++$j]) {          
            if (
$c1 == $haystack[++$i]) { 
                ++
$k;
            } 
        } 
         
        if (
$j == $k) { 
            break; 
        } 
         
        
$pos false
    } 
    
    ++
$i;


if (
$pos === false) {  
    echo 
'Ne naideno'
}
else { 
    echo 
'Stroka do iskomoi podstroki: ' substr($haystack0$pos); 
}

?>



тебе решение написали ниже, не уж то нельзя чуть-чуть доделать?

  Ответить  
 
 автор: confirm   (17.05.2012 в 12:14)   письмо автору
 
   для: technic611   (17.05.2012 в 12:03)
 

Все будет, если дописать условия. Во-первых нужно добавить счетчик для вхождения которое ищем. Во-вторых - увеличивать его, если найдено совпадение для него, и сбрасывать если следующее сравнение ложное. В третьих - соответственно этим условиям сбрасывать позицию. Что-то типа такого. Думайте, вам ведь надо.

  Ответить  
 
 автор: technic611   (17.05.2012 в 12:03)   письмо автору
 
   для: confirm   (17.05.2012 в 00:07)
 

а если искать "ri" работать не будет

  Ответить  
 
 автор: Красная_шляпа   (17.05.2012 в 01:47)   письмо автору
 
   для: confirm   (17.05.2012 в 01:45)
 

дооо с собачками сделает

  Ответить  
 
 автор: confirm   (17.05.2012 в 01:47)   письмо автору
 
   для: Красная_шляпа   (17.05.2012 в 01:41)
 

Строка никогда не была и не будет массивом, можно обращаться к элементам строки по индексу (смещению), но это не значит, что она массив. А поэтому, не являясь таковым, а также объектом, и переданная в качестве аргумента в функцию count, будет возвращать всегда 1.

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-23] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования