Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyciąganie ciągu znaków pomiedzy innymi znakami
Forum PHP.pl > Forum > Przedszkole
natasha
hej

Czy mógłby mi ktoś pomóc questionmark.gif Mam problem z wyciągnięciem ciągu znaków (na przykładzie poniżej: "ccccc ccccc") z dłuższego ciągu.
Poniżej jest schemat ciągu. pod tymi literkami kryją się jakieś wyrazy, z tym ,że "ccc" nie znam a chciałabym wyciągnać,
"qqq" i "xxx" są stałymi tekstami w ciągu. Jak wyciągnąć wyrazy, które kryją się pod literkami cccc.

qqqq qqqqccccc cccccxxxxx

taka łąmigłówka smile.gif
piotrooo89
  1. <?php
  2. $a ='qqqq qqqqccccc cccccxxxxx';
  3. $co = 'ccccc ccccc';
  4. $w = str_replace($a, $a, $co);
  5. echo $w;
  6. ?>

nie wiem czy o to chodziło?
natasha
nie do końca bo chciałabym wyciągnąć ciąg którego nie znam - nie wiem co jest miedzy qqqq i xxxx. qqqq i xxxx to są ograniczniki tego co chce wyciągnąć.
piotrooo89
no to tak

  1. <?php
  2. $a ='qqqq qqqqccccc cccccxxxxx';
  3. $w = substr($a, 9, -5);
  4. echo $w;
  5. ?>
natasha
smile.gif może źle się wyraziłam. Ciąg qqqq qqqqccccc cccccxxxxx jest częścią większego ciągu. W jakis sposób napisać skrypt, aby wyszukiwał w ciągu wyraz, który kryję się pod xxxx czyli w moim przypadku "Witamy". Przed cccc (czyli tym czego nei znam,szukam i chce wyciągnąć) mogą być dwa przypadki wyrazów albo "lakier" albo "puder" czyli


Chciałabym wyciągnać według takiego schematu:


...... lakier szukany_ciąg Witamy..............

lub

...... puder szukany_ciąg Witamy..............

i dla tych dwóch przypadków chciałabym znaleźć szukany_ciąg. Teraz mam nadzieję wyraziłam się jaśniej smile.gif
piotrooo89
wyskrobałem coś takiego... nie wiem czy będzie odpowiadać.
  1. <?php
  2. $a ='sdfs cdfsf sd lakier szukany_ciąg Witamy dasd asd asd s a';
  3. $all=explode (' ', $a);
  4. foreach($all as $key => $val)
  5. {
  6.    if ($val == 'lakier')
  7.    {
  8.        $key=$key+1;
  9.        echo $all[$key];
  10.    }
  11. }
  12. ?>
natasha
a działa to w przypadku kiedy miedzy lakier szukany_ciąg Witamy nie ma spacji questionmark.gif czyli lakierszukany_ciągWitamy. I jak zrobić ,żeby wyszukiwał nie według pierwszego wyrazu czyli "lakier" (bo są dwie możliwosci moze byc także "puder") tylko "Witamy" questionmark.gif
piotrooo89
no ale komplikujesz...

  1. <?php
  2. $a ='sdfs cdfsf sd lakier szukany_ciąg Witamy dasd asd asd s a';
  3. $all=explode (' ', $a);
  4. foreach($all as $key => $val)
  5. {
  6.   if ($val == 'Witamy')
  7.   {
  8.       $key=$key-1;
  9.       echo $all[$key];
  10.   }
  11. }
  12. ?>
natasha
dzieki wielkie biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.