Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] jak za pomocą explode() znalezc ostatni łańcuch
Forum PHP.pl > Forum > Przedszkole
baśka
hejka smile.gif

mam np. plik o nazwie:
taka.sobie.nazwa.jpeg
albo
sobie.nazwa.jpeg
itp.
jak za pomocą explode() wyodrebnić ostatni łańcuch?questionmark.gif?
Cienki1980
Wystarczy wykorzystać funkcję count();
Zliczy Ci ona ilość elementów w tablicy potem wystarczy wyświetlić element count($tablica)-1;
dr_bonzo
co to jest 'ostatni lancuch' -- rozszerzenie pliku? --> http://pl.php.net/manual/en/function.pathinfo.php
baśka
Cytat(Cienki1980 @ 21.01.2007, 17:18:59 ) *
Wystarczy wykorzystać funkcję count();
Zliczy Ci ona ilość elementów w tablicy potem wystarczy wyświetlić element count($tablica)-1;

  1. <?php
  2. $plik = $_FILES['plik']['name'];
  3. $data = explode('.',$plik);
  4. $ostatni = count($data-1;
  5. print $ostatni;
  6. if(($ostatni = "jpeg") or ($ostatni = "jpg") or ($ostatni = "png"))
  7. {
  8.  
  9. //kod robiacy miniaturki
  10.  
  11.  }
  12. ?>


po wyswietleniu $ostatni pokazuje mi liczbe np. 0 albo 1 a nie jpg albo png sadsmiley02.gif



Cytat(dr_bonzo @ 21.01.2007, 17:40:55 ) *
co to jest 'ostatni lancuch' -- rozszerzenie pliku? --> http://pl.php.net/manual/en/function.pathinfo.php


tak... chodzi mi aby wyciągnąc rozszerzenie pliku
cornholio666
Dostosuj do swoich potrzeb

  1. <?php
  2. $file = explode(".", $file);
  3.  
  4. if($file[count($file) - 1] == 'jpg' || $file[count($file) -1] == 'JPG'){
  5. return true;
  6. }else{
  7. return false;
  8. }
  9. ?>
baśka
Cytat(cornholio666 @ 21.01.2007, 18:02:43 ) *
Dostosuj do swoich potrzeb

  1. <?php
  2. $file = explode(".", $file);
  3.  
  4. if($file[count($file) - 1] == 'jpg' || $file[count($file) -1] == 'JPG'){
  5. return true;
  6. }else{
  7. return false;
  8. }
  9. ?>


o dzieki to mi działa :]

a dlaczego gdy dodaje gifa wyskakuje mi bład :

Fatal error: Call to undefined function: imagegif() in

albo taki napis:

Obrazek "http://**********/dodaj_galeria.php" nie może zostać wyświetlony, ponieważ zawiera błędy.


a gdy podobnie robie z png i jpgami to mi działa?? a to sa normalne pliki gif wiec nie mowy o bledach sadsmiley02.gif
Cienki1980
A może pokaż ten skrypt w wktórym generuje się ten błąd questionmark.gif

W ciemno ciężko powiedzieć co nie gra.
baśka
podam cały kod ale ważne są tylko te momenty gdzie kod dotyczy gifa a zeby nikt sie nie doczepił ze to wina czegos innego to wklejam całość:


  1. <?php
  2. if($_SESSION['logowanie']==1)
  3. {
  4. $panel = "<br><br><center><img src=images/strzalka.jpg>&nbsp;<a href=panel.php>wróć do panelu administracyjnego</a></center><br><br>";
  5. print $panel;
  6.  
  7. print'<form enctype="multipart/form-data" action="dodaj_promocje.php" method="POST">
  8. <p>
  9. <label>nagłówek promocji:</legend>
  10. <input name="naglowek" type="text" class="tekst"/>
  11. </p>
  12. <p>
  13. <label>wpisz starą cene [zł]:</legend>
  14. <input name="cena_przed" type="text" class="tekst"/>
  15. </p>
  16. <p>
  17. <label>wpisz nową cenę [zł]:</legend>
  18. <input name="cena_po" type="text" class="tekst"/>
  19. </p>
  20. <p>
  21. <label>wpisz opis:</legend>
  22. <textarea name="opis" id="textarea" class="tekst" onKeyUp="limit(this,255);" onKeyDown="limit(this,200);">wpisz opis promocyjnego towaru</textarea>
  23. <input name="link" type="hidden"/>
  24. </p>
  25. <p>
  26. <label>wyszukaj zdjecię z dysku lokalnego:</legend>
  27. <input name="plik" type="file" class="tekst"/>
  28. </p>
  29. <input type="submit" name="submit" value="dodaj promocje"/>
  30. </form><br>';
  31.  
  32. if (isset($_POST['submit']))
  33. {
  34. $plik = $_FILES['plik']['name'];
  35. $file = explode(".", $plik);
  36. print $file[count($file) - 1];
  37. if($file[count($file) - 1] == 'jpg' || $file[count($file) -1] == 'JPG' || $file[count($file) - 1] == 'png' || $file[count($file) - 1] == 'PNG' || $file[count($file) - 1] == 'jpeg' || $file[count($file) -1] == 'JPEG' || $file[count($file) -1] == 'GIF' || $file[count($file) -1] == 'gif')
  38. {
  39. $opis = $_POST['opis'];
  40. $link = $_POST['link'];
  41. $cena_przed = $_POST['cena_przed'];
  42. $cena_po = $_POST['cena_po'];
  43. $naglowek = $_POST['naglowek'];
  44. $max_rozmiar = 30000000; 
  45. //rozpoczęcie wysyłania zdjęcia
  46. if (is_uploaded_file($_FILES['plik']['tmp_name']))
  47. {
  48.  $naz=$_FILES['plik']['name'];
  49.  if ($_FILES['plik']['size'] > $max_rozmiar)
  50.  {
  51.  echo '<div id=uwaga>Plik jest za duży! maksymalny rozmiar pliku to xxxx kb</div>';
  52.  }
  53.  elseif (file_exists( "upload/$naz" ))
  54.  {
  55.  echo '<div id=uwaga>ISTNIEJE JUŻ PLIK O PODANEJ NAZWIE</div>';
  56.  }
  57.  else
  58.  {
  59.  echo '<div id=uwaga>';
  60.  echo 'Odebrano zdjecie. <BR>Nazwa: '.$_FILES['plik']['name'];
  61. if (isset($_FILES['plik']['type']))
  62. {
  63. echo '<br>';
  64. echo 'Typ: '.$_FILES['plik']['type'].'<br/>';
  65. echo '</div>';
  66. }
  67.  move_uploaded_file($_FILES['plik']['tmp_name'],"upload/".$naz);
  68.  chmod("upload/$naz", 0777);
  69.  $linkmax = "upload/$naz";
  70.  
  71.  if($file[count($file) - 1] == 'jpg' || $file[count($file) -1] == 'JPG' || $file[count($file) - 1] == 'jpeg' || $file[count($file) -1] == 'JPEG')
  72.  {
  73.  $img = imagecreatefromjpeg($linkmax);
  74.  }
  75.  elseif($file[count($file) - 1] == 'png' || $file[count($file) - 1] == 'PNG' )
  76.  {
  77.  $img = imagecreatefrompng($linkmax);
  78.  }
  79.  elseif($file[count($file) - 1] == 'gif' || $file[count($file) - 1] == 'GIF' )
  80.  {
  81.  $img = imagecreatefromgif($linkmax);
  82.  }
  83.  
  84.  $width = imagesx($img);
  85.  $height = imagesy($img);
  86.  $width_mini = 150;
  87.  $wynikObliczen = round(($height*$width_mini)/$width);
  88.  $height_mini = $wynikObliczen;
  89.  
  90.  $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  91.  imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);
  92.  
  93.  $mini_img = "upload/mini_".$naz;
  94.  
  95. if($file[count($file) - 1] == 'jpg' || $file[count($file) -1] == 'JPG' || $file[count($file) - 1] == 'jpeg' || $file[count($file) -1] == 'JPEG')
  96. {
  97. header("Content-type: image/jpeg");
  98. imagejpeg($img_mini, $mini_img, 98);
  99.  
  100. }
  101. elseif($file[count($file) - 1] == 'png' || $file[count($file) - 1] == 'PNG')
  102. {
  103. header("Content-type: image/png");
  104. imagepng($img_mini, $mini_img);
  105. }
  106. elseif($file[count($file) - 1] == 'gif' || $file[count($file) - 1] == 'GIF')
  107. {
  108. header("Content-type: image/gif");
  109. imagegif($img_mini, $mini_img);
  110. }
  111. imagedestroy($img);
  112. imagedestroy($img_mini);
  113.  
  114.  //dodawanie rekordu
  115.  // tu łączy sie z bazą danych
  116.  // nawiazujemy polaczenie
  117.  
  118. $ins = mysql_query("INSERT INTO `promocja` ( `ID` , `OPIS` , `LINK` , `LINK_MINI` , `CENA_PRZED` , `CENA_PO` , `NAGLOWE
    K` ) VALUES ( NULL , '$opis' , '$linkmax' , '$mini_img' , '$cena_przed' , '$cena_po' , '$naglowek' )"
    );
  119. if($ins)
  120. echo "<br><center><div id=uwaga>Wpis dodany poprawnie (promocja)</div></center><br>";
  121. else
  122. echo ("<br>Błąd dodawania wpisu (promocja) <br> skontaktuj sie z administratorem strony www ");
  123. mysql_close($connection);
  124. }
  125.  
  126.  }
  127. //koniec wysyłania zdjęcia
  128.  
  129.  }else
  130.  echo '<div id=uwaga>Nieprawidłowy format pliku! Akceptowane: JPG/JPEG, PNG</div>';
  131.  
  132. }
  133. }
  134. else
  135. {
  136. echo(" <br>Błąd autoryzacji <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>");
  137. }
  138. ?>
maryaan
Cytat(baśka @ 21.01.2007, 18:01:37 ) *
  1. <?php
  2. $plik = $_FILES['plik']['name'];
  3. $data = explode('.',$plik);
  4. $ostatni = count($data)-1; //tu brakowalo nawiasu
  5. print $ostatni;
  6. if(($ostatni = "jpeg") or ($ostatni = "jpg") or ($ostatni = "png"))
  7. {
  8.  
  9. //kod robiacy miniaturki
  10.  
  11.  }
  12. ?>

po wyswietleniu $ostatni pokazuje mi liczbe np. 0 albo 1 a nie jpg albo png sadsmiley02.gif
a co innego ma byc? $ostatni zawiera liczbe elementow tablicy($data) pomniejszona o 1
cornholio666
obsługa gifów została usunieta z php
KotDomowy
A musi być koniecznie explode?

Bo jak nie to można zawsze wyciągnąć rozszerzenie przez

  1. <?php
  2. $sNazwaPliku = 'nazwa.cos.tam.jpg';
  3. $sRozszerzenie = substr( strrchr( $sNazwaPliku, '.' ) , 1 ) ;
  4. ?>
kononowicz
Cytat(KotDomowy @ 23.01.2007, 14:25:46 ) *
A musi być koniecznie explode?

Bo jak nie to można zawsze wyciągnąć rozszerzenie przez

  1. <?php
  2. $sNazwaPliku = 'nazwa.cos.tam.jpg';
  3. $sRozszerzenie = substr( strrchr( $sNazwaPliku, '.' ) , 1 ) ;
  4. ?>

ja mam taki sam problem... nie działa mi gif i jpeg gdy dodaje a nieraz działa
funkcja imagejpg i imagegif nieraz p[okazuje błąd
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.