<?
// Script phortail.org permettant de rduire les images d'un article stock en base pour l'affich sur un mobile.
// Article comment : http://phortail.org/page-webmaster-380.html


$line=$r1["texte"];
if (preg_match_all("|<img src=\"(.*)></img>|U",  $line, $out)) { // renseigner </img> dans le contenu
$i=0; // indice force  0
foreach ($out as $v1) {
	    foreach ($v1 as $v2) {
		$chaine = $out[1][$i];
		if ($chaine) {
			$line = mini($chaine,$line);
		}
		$i++;
	    }
	}
}
print $line;



//  Les deux fonctions suivantes peuvent tre dans un fichier spar et tre appel par un include du fichier dans l'entte de la page contenant le script ci-dessus.



function reduit($doss, $img1) {
	$source = @imagecreatefromjpeg($doss.$img1); // La photo est la source
	// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
	$largeur_source = @imagesx($source);
	$hauteur_source = @imagesy($source);
	$pref="small/";   // nom du rpertoire vignettes
	$img2=$pref.$img1;
	$largeur_destination = 170; // taille destination rduite
	if ($largeur_source > $largeur_destination ) // grande image 
	{
		$taux=imagesx($source)/$largeur_destination;  // on determine un taux
		$hauteur_destination=intval($hauteur_source/$taux); // on l'applique
		if (!file_exists($img2)) { // a t'on dja reduit ?
			$destination = imagecreatetruecolor($largeur_destination, $hauteur_destination); // On cre la miniature vide
			// On cre la miniature
			@imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
			// On enregistre la miniature dans la var2
			@imagejpeg($destination, $img2);
		}
		return ("".$img2."\" width=\"".$largeur_destination."\" height=\"".$hauteur_destination."\"");
	}
	else
	{ // pas de reduction
		$img1=$doss.$img1;
		return ("".$img1."\" width=\"".$largeur_source."\" height=\"".$hauteur_source."\"") ;
	}

}


function mini($chaine, $line) {
	$chaine=str_replace(" class=\"cimgleft\"","",$chaine);
	$chaine=str_replace(" class=\"imgleft\"","",$chaine);
	$findme ="/";
	$pos = strrpos($chaine, $findme);
	$npos=$pos++;
	$rest = substr($chaine, $npos); // image.jpg" width="30" height="30" alt="texte image"
	$pos= strpos($rest,"\""); // recherche du " apres l'estension
	$image=substr($rest, 0, $pos); // nom de l'image
	$doss = substr ($chaine, 0, $npos); 
	if (eregi("alt=\"(.*)\"", $rest, $out)) {
		$alt = $out[1];
	}
	$line=str_replace($chaine, reduit($doss, $image)." Alt=\"".$alt."\"", $line);
return($line);
}

?>