Prendre les 10 dernieres photos script php
Résolu
bretonm2004
Messages postés
319
Date d'inscription
Statut
Membre
Dernière intervention
-
dariumis Messages postés 571 Date d'inscription Statut Membre Dernière intervention -
dariumis Messages postés 571 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voici mon code php il scanne un dossier donné et fait un diaporama ensuite mais voici mon probleme
dans mon répertoire il u a au dessus de 300 photos j'aimerait qu il prenne seulement les 10 derniere elle sont numérotés de 1 a 300
merci
<?php
class PHPDiapo {
var $relPath;
var $images;
var $id;
var $className;
var $transition_time=3;
var $transition_pause;
function PHPDiapo ($path,$id,$className="",$timeout=3, $attrs=array()) {
$this->attrs = $attrs;
$this->relPath = $path;
$this->id = $id;
$this->className = $className;
if ($timeout) $this->transition_pause = $timeout;
$this->init();
$this->write();
}
function init() {
$this->images=array();
$dir = $_SERVER["PATH_TRANSLATED"];
$dir = substr($dir,0,strrpos($dir,"/")+1);
$dir .= $this->relPath;
$hdl = opendir($dir);
while (false !== ($file = readdir($hdl))) {
if($file!="." && $file!="..") {
// check file extension
$pattern = '/\.(gif|png|jpg|jpeg)$/i';
if (!preg_match($pattern, $file, $matches)) continue;
if(is_file($dir."/".$file))
$this->images[]="$this->relPath/$file";
}
}
sort($this->images);
}
function write() {
$this->write_func();
$first=$this->images[0];
$this->write_JS_init();
echo $this->img($first,$id=$this->id,$className=$this->className);
$this->write_JS_launch();
}
function write_JS_init() {
echo "images['".$this->id."']=new Array();\r";
for ($i=0;$i<sizeof($this->images);$i++) {
echo "images['".$this->id."'][$i]=new Image();\r";
echo "images['".$this->id."'][$i].src=\"".$this->images[$i]."\";\r";
echo "images['".$this->id."'][$i].alt=\"".$this->get_alt($this->images[$i])."\";\r";
}
echo "</script>\r\r";
}
function write_func(){
echo "\r<script type=\"text/javascript\">\r";
static $already_write = false;
if ($already_write) {
}
else {
echo "
var FRAME_PER_SEC = 20;
function set_opacity(el, op) {
el.style.opacity = op;
el.style.MozOpacity = op;
el.style.KhtmlOpacity = op;
el.style.filter = 'alpha(opacity=' + op*100 + ')';
el.opacity = op;
}
function fade_in(imageId) {
var img = document.getElementById(imageId);
var incr = 1/((img.transition_time/3)*FRAME_PER_SEC);
var newOp = img.opacity+incr;
newOp = (newOp > 1) ? 1.0 : newOp;
set_opacity(img, newOp);
if (newOp < 1) setTimeout('fade_in(\"'+imageId+'\")',1000/FRAME_PER_SEC);
}
var images = new Array();
function run_diapo(diapoId) {
obj = document.getElementById(diapoId);
obj.src = images[diapoId][obj.index].src;
obj.alt = images[diapoId][obj.index].alt;
obj.title = images[diapoId][obj.index].alt;
obj.opacity = 0.0;
fade_in(diapoId);
obj.index+=1;
if (obj.index >= obj.length_diapo) obj.index=0;
obj.timeout = setTimeout('run_diapo(\"'+diapoId+'\")', obj.transition_pause * 1000);
}\r";
$already_write = true;
}
}
function write_JS_launch() {
$diapoID=$this->id;
echo "\r<script type=\"text/javascript\">\r";
echo "obj = document.getElementById('".$diapoID."');\r";
echo "obj.transition_time=".$this->transition_time.";\r";
echo "obj.transition_pause=".$this->transition_pause.";\r";
echo "obj.index=0;\r";
echo "obj.length_diapo=images['".$diapoID."'].length;\r";
echo "obj.timeout;\r";
echo "if (obj.length_diapo > 0) run_diapo('".$diapoID."');\r";
echo "</script>\r\r";
}
function get_alt($src) {
# strip path
$txt=substr($src,strrpos($src,"/")+1);
# strip extension
$txt=substr($txt,0,strrpos($txt,"."));
# strip special chars
$tostrip=array("_",",","-");
for ($i=0;$i<sizeof($tostrip);$i++) $txt=str_replace($tostrip[$i]," ",$txt);
return $txt;
}
function img($src,$id="",$class="") {
$has_link = false;
$alt=$this->get_alt($src);
$img = "<img id='$id' name='$id' class='$class' alt='$alt' title='$alt' src='$src'";
foreach($this->attrs as $key=>$value)
{
if ($key=="href" && !$has_link) {
$has_link = true;
$img = "<a href=$value>$img";
}
else {
$img .= " $key='$value' ";
}
}
$img .= "/>\r";
if ($has_link) $img .= "</a>";
return $img;
}
}
voici mon code php il scanne un dossier donné et fait un diaporama ensuite mais voici mon probleme
dans mon répertoire il u a au dessus de 300 photos j'aimerait qu il prenne seulement les 10 derniere elle sont numérotés de 1 a 300
merci
<?php
class PHPDiapo {
var $relPath;
var $images;
var $id;
var $className;
var $transition_time=3;
var $transition_pause;
function PHPDiapo ($path,$id,$className="",$timeout=3, $attrs=array()) {
$this->attrs = $attrs;
$this->relPath = $path;
$this->id = $id;
$this->className = $className;
if ($timeout) $this->transition_pause = $timeout;
$this->init();
$this->write();
}
function init() {
$this->images=array();
$dir = $_SERVER["PATH_TRANSLATED"];
$dir = substr($dir,0,strrpos($dir,"/")+1);
$dir .= $this->relPath;
$hdl = opendir($dir);
while (false !== ($file = readdir($hdl))) {
if($file!="." && $file!="..") {
// check file extension
$pattern = '/\.(gif|png|jpg|jpeg)$/i';
if (!preg_match($pattern, $file, $matches)) continue;
if(is_file($dir."/".$file))
$this->images[]="$this->relPath/$file";
}
}
sort($this->images);
}
function write() {
$this->write_func();
$first=$this->images[0];
$this->write_JS_init();
echo $this->img($first,$id=$this->id,$className=$this->className);
$this->write_JS_launch();
}
function write_JS_init() {
echo "images['".$this->id."']=new Array();\r";
for ($i=0;$i<sizeof($this->images);$i++) {
echo "images['".$this->id."'][$i]=new Image();\r";
echo "images['".$this->id."'][$i].src=\"".$this->images[$i]."\";\r";
echo "images['".$this->id."'][$i].alt=\"".$this->get_alt($this->images[$i])."\";\r";
}
echo "</script>\r\r";
}
function write_func(){
echo "\r<script type=\"text/javascript\">\r";
static $already_write = false;
if ($already_write) {
}
else {
echo "
var FRAME_PER_SEC = 20;
function set_opacity(el, op) {
el.style.opacity = op;
el.style.MozOpacity = op;
el.style.KhtmlOpacity = op;
el.style.filter = 'alpha(opacity=' + op*100 + ')';
el.opacity = op;
}
function fade_in(imageId) {
var img = document.getElementById(imageId);
var incr = 1/((img.transition_time/3)*FRAME_PER_SEC);
var newOp = img.opacity+incr;
newOp = (newOp > 1) ? 1.0 : newOp;
set_opacity(img, newOp);
if (newOp < 1) setTimeout('fade_in(\"'+imageId+'\")',1000/FRAME_PER_SEC);
}
var images = new Array();
function run_diapo(diapoId) {
obj = document.getElementById(diapoId);
obj.src = images[diapoId][obj.index].src;
obj.alt = images[diapoId][obj.index].alt;
obj.title = images[diapoId][obj.index].alt;
obj.opacity = 0.0;
fade_in(diapoId);
obj.index+=1;
if (obj.index >= obj.length_diapo) obj.index=0;
obj.timeout = setTimeout('run_diapo(\"'+diapoId+'\")', obj.transition_pause * 1000);
}\r";
$already_write = true;
}
}
function write_JS_launch() {
$diapoID=$this->id;
echo "\r<script type=\"text/javascript\">\r";
echo "obj = document.getElementById('".$diapoID."');\r";
echo "obj.transition_time=".$this->transition_time.";\r";
echo "obj.transition_pause=".$this->transition_pause.";\r";
echo "obj.index=0;\r";
echo "obj.length_diapo=images['".$diapoID."'].length;\r";
echo "obj.timeout;\r";
echo "if (obj.length_diapo > 0) run_diapo('".$diapoID."');\r";
echo "</script>\r\r";
}
function get_alt($src) {
# strip path
$txt=substr($src,strrpos($src,"/")+1);
# strip extension
$txt=substr($txt,0,strrpos($txt,"."));
# strip special chars
$tostrip=array("_",",","-");
for ($i=0;$i<sizeof($tostrip);$i++) $txt=str_replace($tostrip[$i]," ",$txt);
return $txt;
}
function img($src,$id="",$class="") {
$has_link = false;
$alt=$this->get_alt($src);
$img = "<img id='$id' name='$id' class='$class' alt='$alt' title='$alt' src='$src'";
foreach($this->attrs as $key=>$value)
{
if ($key=="href" && !$has_link) {
$has_link = true;
$img = "<a href=$value>$img";
}
else {
$img .= " $key='$value' ";
}
}
$img .= "/>\r";
if ($has_link) $img .= "</a>";
return $img;
}
}
A voir également:
- Prendre les 10 dernieres photos script php
- Partager des photos - Guide
- Clé d'activation windows 10 - Guide
- Télécharger toutes les photos google photos - Guide
- Script vidéo youtube - Guide
- Restauration systeme windows 10 - Guide
1 réponse
Salut, j'ai pas lu ton code, mais a un moment les images tu les place certainement dans un array, donc quant tu boucle pour remplire l'array t'incrémente un compteur, puis une fois le array rempli tu décrémente une boucle for qui démarre à ton compteur, et qui va jusqu'à ton compteur moins 10 et tu transfert.