Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrazenai regularne - problem
Forum PHP.pl > Forum > Gotowe rozwiązania
karolski
Witam,

Mam mały problem z linkime pobieranym z bazy, pobeiram nazwe fotki molo_01234.jpg a miniaturki sa po dazwa molo_01234m.jpg . Jak za pomoca wyrazen regularnych mozna dodac tam to nieszczesne m biggrin.gif questionmark.gif?
yavaho
  1. <?php
  2. $img= explode(&#092;".\", 'molo_01234.jpg');
  3. $thumb=$img[0].'m.'.$img[1];
  4. echo($thumb);
  5. ?>
Pod warunkiem ze w nazwie pliku jest tylko jedna kropka.
strife
  1. <?php
  2.  
  3.    $string = 'molo_01234.jpg';
  4.    $exlode = explode('.', $string);
  5.    $exlode[0] .= 'm';
  6.    $flow = implode('.', $exlode);
  7.    echo $flow;
  8.  
  9. ?>

Wymyśliłem coś takiego, tylko że to nie jest za pomocą wyrażeń regularnych jak chciałeś, i nie rozwiązuje problemu gdy nazwa będzie zawierała dwie kropki, w tym wypadku o ile się nie myle pomorze array_pop(); - ale nie dam sobie za to ręki obciąć. Korzystając z okazji, niech ktoś mi doradzi, jak odczytać ostatni element tablicy, albo odwrócic kolejność?

Pozdrawiam!

EDIT
Wymyśliłem sposób na kropki:
  1. <?php
  2.  
  3.  $string = 'molo_01234.jpg';
  4.  $exlode = explode('.', $string);
  5.  $licz = count($exlode);
  6.  $licz -= 2;
  7.  $exlode[$licz] .= 'm';
  8.  $flow = implode('.', $exlode);
  9.  echo $flow;
  10.  
  11. ?>
karolski
poradzilem sobie z skryptem od yavaho naszczescie jest tylko jedna kropka tongue.gif ale znowu mam problem z wyrazeniami regularnymi chyba musze dzis poczytac o tym bo cos mi nei idze pisac tego skryptu smile.gif mam pytanie jak mam cos takiego 01-12-2004 jak z tego wyciagnac tylko rok 2004 questionmark.gifquestionmark.gif?
strife
  1. <?php
  2.  
  3. $string = '12-54-2004';
  4.  $exlode = explode('-', $string);
  5.  echo $exlode[2];
  6.  
  7. ?>
sobstel
co do pierwszego problemu to za jednym zamachem mozna to zrobic za pomoca str_replace :
Kod
$str = str_replace('.', 'm.', $str);


poza tym widze ze kolega uparl sie okropnie na wyrazenia regularne heh
tiraeth
  1. <?php
  2. # pierwszy przyklad
  3.  $aString = 'molo_01234.jpg';
  4.  $new_aString = preg_replace('#(.jpg|.gif|.png)#s', 'm1', $aString);
  5.  
  6. # drugi przykład
  7.  $bString = '01-12-2004';
  8.  if(preg_match('#(d{2}-d{2}-)(d{4})#', $bString, $hlp))
  9.  {
  10. $new_bString = $hlp[0][2];
  11.  }
  12. ?>


nie wiem czy zadziała...
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-2024 Invision Power Services, Inc.