Взимане на пълен адрес при скрипт

pszone

Registered
Намерих едно много хубаво скриптче за автоматично създаване на галериики. Идеята е да се сложи файла в директорията с картинките и след като се зареди, то прави thumbnails и автоматично създава галерия (погледнете демото). Имам обаче един въпрос. Възможно ли е да се направи да зарежда изображенията с пълният им адрес, а не както е сега само с името на изображението.

Ето и самият скрипт

Код:
<?php
/*************************************************
 * Micro Photo Gallery
 *
 * Version: 1.0
 * Date: 2007-04-05
 *
 * Usage:
 * Just copy these files into your image folder
 *
 ****************************************************/

 $columns     = 5;
 $thmb_width  = 120;
 $thmb_height = 80;

function resizeImage($originalImage,$toWidth,$toHeight){
    
    // Get the original geometry and calculate scales
    list($width, $height) = getimagesize($originalImage);
    $xscale=$width/$toWidth;
    $yscale=$height/$toHeight;
    
    // Recalculate new size with default ratio
    if ($yscale>$xscale){
        $new_width = round($width * (1/$yscale));
        $new_height = round($height * (1/$yscale));
    }
    else {
        $new_width = round($width * (1/$xscale));
        $new_height = round($height * (1/$xscale));
    }
    // Resize the original image
    $imageResized = imagecreatetruecolor($new_width, $new_height);
    $imageTmp     = imagecreatefromjpeg ($originalImage);
    imagecopyresampled($imageResized, $imageTmp, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

    return $imageResized;
} 

function generateThumbnails(){
	global $thmb_width,$thmb_height;
	
	// Open the actual directory
	if ($handle = opendir(".")) {
		// Read all file from the actual directory
		while ($file = readdir($handle))  {
			// Check whether tha actual item is a valid file
			if (is_file($file)){
				// Check whether the actual image is a thumbnail
	      		if (strpos($file,'_th.jpg')){
	      			$isThumb = true;
	      		} else {
		      		$isThumb = false;
		      	}
	      	
	      		if (!$isThumb) {
		      		// Process the file string
	      			$dirName  = substr($file,0,strpos($file,basename($file)));
	      			if (strlen($dirName) < 1) $dirName = '.';
	      			$fileName = basename($file);
	      			$fileMain = substr($fileName,0,strrpos($fileName,'.'));
	      			$extName  = substr($fileName,strrpos($fileName,'.'),
	      								strlen($fileName)-strrpos($fileName,'.'));
  					
	      			// Check if the actual file is a jpeg image
	      			if (($extName == '.jpg') || ($extName == '.jpeg')){
			    		$thmbFile = $dirName.'/'.$fileMain.'_th.jpg';
			    		// If a thumbnail dosn't exists tahn create a new one
			    		if (!file_exists($thmbFile)){
				    		imagejpeg(resizeImage($file,$thmb_width,$thmb_height),$thmbFile,80);
				    	}
					}
	      		} 
	   		}
   		}
	}
	
}

function getNormalImage($file){
	$base = substr($file,0,strrpos($file,'_th.jpg'));
	if (file_exists($base.'.jpg')) return $base.'.jpg';
	elseif (file_exists($base.'.jpeg')) return $base.'.jpeg';
	else return "";
}

function displayPhotos(){
	global $columns;
	
	generateThumbnails();
	$act = 0;
	// Open the actual directory
	if ($handle = opendir(".")) {
		// Read all file from the actual directory
		while ($file = readdir($handle))  {
			// Check whether tha actual item is a valid file
			if (is_file($file)){
				// Check whether the actual image is a thumbnail
	      		if (strpos($file,'_th.jpg')){
					++$act;
					if ($act > $columns) {
						echo '</tr><tr><td class="photo"><a href="'.getNormalImage($file).'"><img src="'.$file.'" alt="'.$file.'"/></a></td>';	
						$act = 1;
					} else {
						echo '<td class="photo"><a href="'.getNormalImage($file).'"><img src="'.$file.'" alt="'.$file.'"/></a></td>';	
					}
	      			
	      		}
	      	}
		}
	}	
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html>
<head>
   <title>Micro Photo Gallery</title>
   <link href="style/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
  <div id="main">
    <div class="caption">Micro Photo Gallery</div>
      <table align="center"><tr>     
    		<?php displayPhotos(); ?>
      </table>		
    		
	<div id="source">Micro Photo Gallery 1.0</div>
  </div>
</body>

Сега ако погледнете сорсът на демото ще видите че тоий изглежда така:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html>
<head>
   <title>Test</title>
   <link href="style/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
  <div id="main">
    <div class="caption">Test</div>
      <table align="center"><tr>     
    		<td class="photo"><a href="37.jpg"><img src="37_th.jpg" alt="37_th.jpg"/></a></td><td class="photo"><a href="38.jpg"><img src="38_th.jpg" alt="38_th.jpg"/></a></td><td class="photo"><a href="39.jpg"><img src="39_th.jpg" alt="39_th.jpg"/></a></td><td class="photo"><a href="40.jpg"><img src="40_th.jpg" alt="40_th.jpg"/></a></td><td class="photo"><a href="41.jpg"><img src="41_th.jpg" alt="41_th.jpg"/></a></td>      </table>		
    		
	<div id="source">GamingNeo</div>

  </div>
</body>

А аз искам да изглежда така:

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html>
<head>
   <title>Test</title>
   <link href="style/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
  <div id="main">
    <div class="caption">Test</div>
      <table align="center"><tr>     
    		<td class="photo"><a href="http://gamingneo.headoff.com/screen_test/37.jpg"><img src="http://gamingneo.headoff.com/screen_test/37_th.jpg" alt="37_th.jpg"/></a></td><td class="photo"><a href="http://gamingneo.headoff.com/screen_test/38.jpg"><img src="http://gamingneo.headoff.com/screen_test/38_th.jpg" alt="38_th.jpg"/></a></td><td class="photo"><a href="http://gamingneo.headoff.com/screen_test/39.jpg"><img src="http://gamingneo.headoff.com/screen_test/39_th.jpg" alt="39_th.jpg"/></a></td><td class="photo"><a href="http://gamingneo.headoff.com/screen_test/40.jpg"><img src="http://gamingneo.headoff.com/screen_test/40_th.jpg" alt="40_th.jpg"/></a></td><td class="photo"><a href="http://gamingneo.headoff.com/screen_test/41.jpg"><img src="http://gamingneo.headoff.com/screen_test/41_th.jpg" alt="41_th.jpg"/></a></td>      </table>		
    		
	<div id="source">GamingNeo</div>

  </div>
</body>

Благодаря предварително!
 
echo '<td class="photo"><a href="'.getNormalImage($file).'"><img src="'.$file.'" alt="'.$file.'"/></a></td>';


трябва да стане (според мен)

echo '<td class="photo"><a href=http://site.com/pakata_s_kartinkite/"'.getNormalImage($file).'"><img src="'.$file.'" alt="'.$file.'"/></a></td>';


доколото виждам трябва на две места да се промени този код.
 
Аз свалих скрипта пуснах го. После видях и твоя начин на изглед. .. никаква разлика не виждам, или съм киорав или малоумен ..
 
Няма разлика, въпросът се състои в това че за малко време може да направя голяма галерия и след това да копирам определена част, която ще пейстна някаде другаде. Но ако нямам пълния адрес до изображенията и техните thumnails ще трябва да правя всичко ръчно, а когато става дума за 40-50 изображения - просто не върви.

admin благодаря за помощта, аз се сетих за този вариант, малко след като написах поста, иначе друг начин няма така ли? Ако не ще използвам твоя вариант.
 
Искам да попитам още нещо по този скрип. В момента той създава thumbnails с име - името на снимката_th.jpg Аз искам да бъде thumb_името на снимката.jpg
 
Не става, въпросът е че искам thumb_ да бъде в началото на името, а сега е в края. В момента е image_th.jpg а аз искам да го направя thumb_image.jpg
 
Добре, искам да попитам още един въпрос. Поне възможно ли е да се вземе по някакъв начин името на директорията, в която се намира файлът и да я добавя към адреса и следователно адреса към картинките да бъде нещо от сорта на:

<a href=http://mysite.com/$imeto_na_direktoriqta/"'.getNormalImage($file).'">
 
Да, оправих се с проблема. Искам да попитам възможно ли е да се направи скрипта така че да прави thumbnail-ите според ширината на изображението, защото в момента не моге да разбера на какъв принцип прави съотношението. Аз искам винаги малките изображениея да са широки например 118px, а височината да се пресмята според самото изображение автоматично.
 
Отново ще ми трябва помощ за редакция на този скрипт. Както казах, опитвам от доста време да измисля начин да пригодя скрипта така, че thumbnail-ите да не бъдат със суфикс, а с префикс. Искам thumbnail-a да се преименува на thumb_името_на_файла.jpg ЗЬа мое съжаление не стигнах до решение. Също така, искам да премахна функцията за автоматично създаване на thumbnail-ите. Искам просто ако има в директорията:

image.jpg
thumb_image.jpg

Да го покаже в галерията, нищо повече. Моля ви, наистина ми е нужна помощ.
 

Back
Горе