Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: substr lub cos innego
Forum PHP.pl > Forum > PHP
qweqwe
Mam pytanko:

mam ciagi znaków np:
EDISCCSAACAMYCASC/36 (34,4)
NMASBUIDUIDIU.SJIO/42.5 (12,3)

jak zczytac z nich za pomoca jednego i tego samego wyrazenia kawełek od znaku / do znaku (

czyli chce otrzymać:
36
42.5

Z góry dziekuja za pomoc. Kombiuje jak kon pod gore ale ciagle mi nie wychodzi sad.gif
Pozdr
bruny
Kod
$tmp="EDISCCSAACAMYCASC/36 (34,4)";

$tmp=strstr ($tmp2,"/");
$tmp=substr ($tmp2, 1);
$tmp=substr ($tmp2,0,strpos($tmp2,"("));


hmm nie wiem dlaczego
w jednej mi nie dziala a mysle ze powinno byc cos kolo tego
Kod
$tmp2=substr ($tmp2, strpos($tmp2,"/"), strpos($tmp2,"("));
batman
Możesz też użyć explode:

  1. <?php
  2.  
  3. $str='EDISCCSAACAMYCASC/36 (34,4)';
  4. $tab1=explode('/',$str);
  5. $tab2=explode('(',$tab[1]);
  6. $wynik=$tab2[0];
  7.  
  8. ?>


Nie testowałem, więc nie jestem pewien na 100 % czy zadziała.
FiDO
Mozna tez wyrazeniami regularnymi, ktore zostaly do takich rzeczy stworzone:

  1. <?php
  2.  
  3. preg_match('#/(.*?)(#', $tekst, $m);
  4.  
  5. echo $m[1];
  6.  
  7. ?>


Jesli podalbys dokladniejszy format jak moga wygladac te stringi to mozna to jeszcze wyspecjalizowac troszke.
qweqwe
Dziekuje za wszystkie odpowiedzi i chec pomocy biggrin.gif

Najbardziej spodobało mi sie rozwiązanie z wyrażeniami regularnymi zaproponowane przez FiDO. Wszystko działa poprawnie ale pojawil siep nowy prablem.

Stringi czasem wygladają tak (generalnie są bardzo różne):
DFKKOOACACN/VAGY/44.4 (23,2)

Problem w tym ze znak / występuje dwa razy i wtedy wychodzą błędy. FiDO lub inni prosze o pomoc jak przerobic to wyrażenie, aby zczytywało ono kawałek stringa między ostanim / a (


Z gory THX
FiDO
Jesli po tym ostatnim slashu zawsze jest liczba (calkowita lub nie) to mozna tak:
  1. <?php
  2.  
  3. preg_match('#/(d+(.d+)?) (#', $tekst, $m);
  4.  
  5. ?>
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.