Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Jak sie pozbyc podkreslnika w nazwie zdjec?
blank_screen
post 9.08.2009, 14:55:39
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.08.2009

Ostrzeżenie: (0%)
-----


Witam,
mam taki skrypt ktory uploaduje mi masowo zdjecia z katalogu na serwerze i tworzy od razu miniatury, tylko ze zdjecie nie moze miec odstepow(spacji) w nazwie, bo nie zostanie stworzona miniatura, wiec wszedzie musze stosowac podkreslnik, moje pytanie czy daloby sie jakos zmodyfikowac ten skrypt zeby te podkreslniki znikaly w momencie tworzenia miniatur i zdjecia glownego? Patrzylem po innych stronach i zdjecia po zapisaniu na dysk maja podkreslniki a na stronie ich nie maja, mozna oczywiscie zrobic to recznie, ale co jesli masz kilka tysiecy zdjec?

Oto skrypt:

  1. <?php
  2. require('config.php');
  3. $cat = $_GET['id'];
  4.  
  5. function strip_ext($name)
  6. {
  7. $ext = strrchr($name, '.');
  8. if($ext !== false)
  9. {
  10. $name = substr($name, 0, -strlen($ext));
  11. }
  12. return $name;
  13. }
  14.  
  15.  
  16. $MainC = mysql_query("SELECT * FROM category WHERE id='$cat'") or die(mysql_error());
  17. while($MC = mysql_fetch_array($MainC)) {
  18. $m = $MC['main_category'];
  19. }
  20.  
  21. $mcat = $m;
  22. $path = "imgs/";
  23. $dir_handle = @opendir($path) or die("Unable to open $path");
  24. echo "<textarea name='sql' rows='30' cols='90'>";
  25. echo "User Ip Address: ";
  26. echo $_SERVER["REMOTE_ADDR"]
  27. ;
  28. Batch Image Adding System
  29. This script will now add all images in the imgs/ directory into the DB
  30. ";
  31. echo "Starting.....
  32. ";
  33. echo "Connecting to $path
  34. ";
  35. echo "Connecting to MYSQL DB
  36. ";
  37.  
  38.  
  39. while ($file = readdir($dir_handle))
  40. {
  41. $fext = array_pop(explode('.', $file));
  42. $fname = basename($file, '.'.$fext);
  43. $title = $fname;
  44. $cat = $_GET['id'];
  45. $mcat = $_GET['mid'];
  46.  
  47. $ck = mysql_query("SELECT COUNT(id) FROM pics WHERE title='$title'") or die(mysql_error());
  48. while($k = mysql_fetch_array($ck)){
  49.  
  50. if($k['COUNT(id)'] > 0) { echo "$file already exist.... Skipping $file....
  51. "; } else {
  52.  
  53. //Thumb System
  54. if($file!="." && $file!=".." && $file!="upload" && $file!="Thumbs.db") {
  55.  
  56. $file1 = ereg_replace(" ","_",$file);
  57. rename(''.PATH.'imgs/'.$file1,''.PATH.'imgs/'.$file);
  58.  
  59. $ftype = end(explode('.',$file));
  60. $image_name = "./imgs/".$file;
  61.  
  62. $img_name = $file;
  63. $img2_name = basename($file);
  64. list($width,$height) = getimagesize(URL.'imgs/'.$file1);
  65.  
  66. $new_image_name = "./thumb/".$file;
  67.  
  68.  
  69. $new_width = '100';
  70. $new_height = '100';
  71.  
  72. $image_p = imagecreatetruecolor('100','100');
  73.  
  74. if($ftype == 'gif') {
  75. $image = imagecreatefromgif($image_name);
  76. imagecopyresampled($image_p,$image,0,0,0,0,$new_width,$new_height,$width,$height);
  77. imagegif($image_p,$new_image_name);
  78. echo("Thumb Created!");
  79. }
  80.  
  81. elseif($ftype == 'jpg' OR $ftype == 'jpeg') {
  82. $image = imagecreatefromjpeg($image_name);
  83. imagecopyresampled($image_p,$image,0,0,0,0,$new_width,$new_height,$width,$height);
  84. imagejpeg($image_p,$new_image_name,100);
  85. echo("Thumb Created!");
  86. }
  87.  
  88. elseif($ftype == 'png') {
  89. $image = imagecreatefrompng($image_name);
  90. imagecopyresampled($image_p,$image,0,0,0,0,$new_width,$new_height,$width,$height);
  91. imagepng($image_p,$new_image_name,100);
  92. echo("Thumb Created!");
  93. }
  94.  
  95. }
  96.  
  97. if($file!="." && $file!=".." && $file!="upload" && $file!="Thumbs.db") {
  98. mysql_query("INSERT INTO pics (`id`, `title`, `thumb`, `img`, `main_category`, `category`) VALUES ('', '$title', '$file', '$file', '$m', '$cat')");
  99. echo "Added $file..... into $m
  100. ";
  101. }
  102.  
  103. } } }
  104. echo "Please ignore any errors that have 'already exist', it means its a duplicate entry.
  105. ";
  106. echo "</textarea>";
  107. closedir($dir_handle);
  108.  
  109. ?>


Ten post edytował blank_screen 9.08.2009, 14:57:03
Go to the top of the page
+Quote Post
Wicepsik
post 9.08.2009, 14:58:35
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


  1. echo str_replace('_', '', 'To_jest_miniaturka_bez_podkreślenia');


--------------------
Go to the top of the page
+Quote Post
blank_screen
post 9.08.2009, 15:08:20
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.08.2009

Ostrzeżenie: (0%)
-----


a moglbys mi podpowiedziec w ktorym miejscu mam wkleic ta linijke? Oczywiscie wiem ze nie wystarczy mi kopiuj, wklej, az taki zielony nie jestem;) wiem, ze musze sobie to zmodyfikowac;)
pozdrawiam

Ten post edytował blank_screen 9.08.2009, 15:28:24
Go to the top of the page
+Quote Post
Wicepsik
post 9.08.2009, 15:33:42
Post #4





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Nie jestem pewien ale tutaj

  1. imagegif($image_p,$new_image_name);
  2. //na
  3. imagegif($image_p,str_replace('_','',$new_image_name));

I tak w każdym rozszerzeniu

Ten post edytował Wicepsik 9.08.2009, 15:34:15


--------------------
Go to the top of the page
+Quote Post
ArekJ
post 9.08.2009, 15:42:48
Post #5





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

Ostrzeżenie: (0%)
-----


To będzie chyba 68 linia.
Z
  1. $new_image_name = "./thumb/".$file;

na
  1. $new_image_name = str_replace('_', '','./thumb/".$file');


Ten post edytował ArekJ 9.08.2009, 15:43:19


--------------------

"Do bramy, bo pada deszcz
Gdy zaćpiesz przejdzie dreszcz
I wróci, wróci tęcza barw
I pęknie twój wrogi świat" R. Riedel
Go to the top of the page
+Quote Post
blank_screen
post 9.08.2009, 16:52:41
Post #6





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.08.2009

Ostrzeżenie: (0%)
-----


zaprezentowaliscie dwa rozne rozwiazania, przetestuje oba i dam znac, mam tylko pytanie do ArekJ czy tam gdzies nie umknal Ci jeden cudzyslow, zazwyczaj one chodza parami, no ale moge sie na tym nie znac;) jeszcze nie probowalem czy to dziala, ale zaraz sie dowiem;)

niestety, zadne z tych rozwiazan nie bylo skuteczne, nazwy nadal maja podkreslnik, a jakby tego bylo malo, to w obu przypadkach miniatury nie zostaly utworzone...:/

poprawka, miniatury zostaly utworzone, ale nie wyswietlaja sie na stronie i zamiast podkreslnika, nie ma spacji, a po prostu powstaje jeden dluzszy wyraz, jaka moze byc tego przyczyna? Ktos pomoze?

Ten post edytował blank_screen 9.08.2009, 17:11:05
Go to the top of the page
+Quote Post
ArekJ
post 10.08.2009, 05:31:04
Post #7





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

Ostrzeżenie: (0%)
-----


Przyczyna jest jedna(co do powstawania jednego wyrazu) kod powinien wyglądać tak:
  1. $new_image_name = str_replace('_', ' ','./thumb/".$file');

Tamten znaczek co uznałeś za cudzysłów to były dwa apostrofy i miała być między nimi spacja.
Co do problemu z wyświetlaniem, to zobacz co próbuje wyświetlić(w źródle strony) i wtedy się pewnie wszystko wyjaśni ;]


--------------------

"Do bramy, bo pada deszcz
Gdy zaćpiesz przejdzie dreszcz
I wróci, wróci tęcza barw
I pęknie twój wrogi świat" R. Riedel
Go to the top of the page
+Quote Post
Pawel_W
post 10.08.2009, 05:51:52
Post #8





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

Ostrzeżenie: (0%)
-----


Cytat(ArekJ @ 10.08.2009, 06:31:04 ) *
Przyczyna jest jedna(co do powstawania jednego wyrazu) kod powinien wyglądać tak:
  1. $new_image_name = str_replace('_', ' ','./thumb/".$file');

Tamten znaczek co uznałeś za cudzysłów to były dwa apostrofy i miała być między nimi spacja.
Co do problemu z wyświetlaniem, to zobacz co próbuje wyświetlić(w źródle strony) i wtedy się pewnie wszystko wyjaśni ;]

mieszacie mu, narąbaliście tych cudzysłowów, a przecież można tak:
  1. $new_image_name = './thumb/' . str_replace('_', ' ', $file);

i już wszystko widać
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 17.06.2025 - 02:25