Bilder auf ext. webspace auflisten um in 4images includen

AgentSandsLady

Grünschnabel
Hallo, ich hoffe, ihr könnt mir als php-Nichtkönnerin helfen.

also, die Überschrift reicht nicht, um dieses Vorhaben zu beschreiben.

Mein Problem:
Ich habe auf dem einen Webspace eine 4images gallerie installiert, aber über 10000 Screencaps auf externem Webspace gelagert. Die möchte ich - verständlich - nicht alle einzeln einfügen.
Im 4images Forum hat schon jemand ein Script geschrieben, wie man mit externem ftp Zugriff diese Bilder includen kann (sie bleiben dabei auf dem externen Webspace und werden von 4images verlinkt). Da aber bei allen relevanten kein externer ftp Zugriff möglich ist, habe ich es mit dem einen, wo es möglich ist gemacht, bin in phpmyadmin gegangen und habe mir den Code, mit dem es eingetragen wurde, angesehen.
Er sieht so aus (mal eine Auswahl von 3 Bildern):

Code:
INSERT INTO `4images_images` VALUES (100, 2, 1, 'PotC', 'Screencap Pirates of the Caribbean', 'PotC Pirates of the Caribbean Screencap Screenshot', 1106495218, 1, 'http://meinezweitedomain.de/SSPotC/SSPotC110.jpg', '', '', 1, 0, 0, 0, '0.00', 0);
 INSERT INTO `4images_images` VALUES (101, 2, 1, 'PotC', 'Screencap Pirates of the Caribbean', 'PotC Pirates of the Caribbean Screencap Screenshot', 1106495218, 1, 'http://meinezweitedomain.de/SSPotC/SSPotC111.jpg', '', '', 1, 0, 0, 0, '0.00', 0);
 INSERT INTO `4images_images` VALUES (102, 2, 1, 'PotC', 'Screencap Pirates of the Caribbean', 'PotC Pirates of the Caribbean Screencap Screenshot', 1106495218, 1, 'http://meinezweitedomain.de/SSPotC/SSPotC112.jpg', '', '', 1, 0, 0, 0, '0.00', 0);

Die Bild ID (die erste dick markierte Zahl) und die Zahl des Bildes ist natürlich nicht immer dieselbe. Und manchmal habe ich auch komplett unterschiedliche Bildnamen von einigen hundert Magazin Scans.

Ich bräuchte also nun ein php Script, das ich per ftp dort hochlade, dann als Variablen die Adresse des Ordners, in dem das php-Script liegt, die Bild ID, mit der zu beginnen ist (und dann immer um eine Zahl zunimmt), die Bildbeschreibung, die Keywords als Ausfüllfeld zeigt und dann nach "Abschicken" den gesamten Ordner, in dem das Script ist, oder auch einen Ordner relativ zu dem entsprechenden Script, dann als oben genannten Code auflistet, den ich nur noch nehmen und in das phpmyadmin beim Webspace mit der 4images Gallerie einfügen brauche.

Leider kann ich kein php bis auf das <php include bla> und mal ein paar Banner in den footer meines Forums einzufügen. Ich habe mir schon die Collection von Ordnerauflistungen (bei den Tutorials) angeguckt, bin aber maßlos überfordert, da ja auch noch das Durchzählen, das bei einer beliebigen Nr. anfängt, dazukommt und auch noch jede Menge Kram dazwischen und dann auch noch die Angabe mit der vollen Bildadresse.

Helft mir, Obi-Wan Kenobi, ihr seid meine letze Hoffung!

Vielen Dank, Martina.
 
Jetzt stellt sich nur die Dumme Frage wieso sich jemand ne Stunde oder so hinsetzten soll um dir ein Script zu schreiben.? Gegen bezahlung immer gerne :)
 
Naja, dann stellt sich auch die Frage,
warum es so ein Forum gibt.
Es würde ja nicht untergehen, sondern für alle nutzbar sein - nicht nur für 4images, sondern alles mögliche andere.

Vielleicht hat schonmal jemand etwas ähnliches gemacht -
einmal mit einer Durchnummerierung
oder mit dem einfachen, dass da noch was davor und dahinter steht und kann mir einen geeigneten Denkanstoß geben.

Wenn man z.B. das hier hat:
PHP:
<?
  function CheckExt($filename, $ext) {
  $passed = FALSE;
  $testExt = "\.".$ext."$";
  if (eregi($testExt, $filename)) {
  $passed = TRUE;
  }
  return $passed;
  }
  
  //Define an array of common extensions.
  $exts = array("gif","jpg$|\\.jpeg","png","bmp");
  
  echo "<b>Images in this folder:</b>";
  $dir = opendir(".");
  $files = readdir($dir);
  
  while (false !== ($files = readdir($dir))) {
  foreach ($exts as $value) {
  if (CheckExt($files, $value)) {
  echo "  INSERT INTO `4images_images` VALUES (100, 2, 1, 'PotC', 'Screencap Pirates of the Caribbean', 'PotC Pirates of the Caribbean Screencap Screenshot', 1106495218, 1, 'http://meinezweitedomain.de/SSPotC/<a href=\"$files\">$files</a>  ', '', '', 1, 0, 0, 0, '0.00', 0);<br>";
  $count++; //Keep track of the total number of files.
  break; //No need to keep looping if we've got a match.
  }
  }
  
  }
  echo $count." image(s) found in this directory.\n";
  echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Refresh</a>\n";
  //Be a good script and clean up after yourself...
  closedir($dir);
  
  ?>

Ich habe nun schon den ganzen Kram mit der Bildbeschreibung und dem Absatz eingefügt.
Damit wäre ja schonmal die erste Hälfte geschafft, die Bildbeschreibung und das alles müssen dann halt manuell jedesmal geändert werden, bevor man das Skript hochlädt, was aber nicht schlimm wäre.

Und dann wäre nur noch die Frage zu klären, wie man diese 100 am Anfang dazu bringt, dass sie sich von selbst durchnummeriert.

Ist das wirklich eine Stunde Arbeit?
 
Zuletzt bearbeitet:
oO weist du wieiviele hier 4image verwenden? vielleicht mal irgendwas unter nem %. Nenbenbei is ds Forum nich da dir ein Script zu coden sonderen jemanden auf die Sprünge zu helfen wenn er bei seinem SELBST gecodedeten Script ein Problem hat.

Jo ne Stunde warum auch ned? Erstmal einlesen gucken etc. Klar ich und paar andere hier könnten es schneller stellt sich nur die Frage wieso wir dsa machen sollten?
 
Ihr sollt mir ja nix fertiges auf den Tisch legen, sondern nur ein wenig bei den möglichen Funktionen unter die Arme greifen.
Bitte sei jetzt mal nett, OK? *Hand reich*
Das hat eigentlich nix mit 4images zu tun - sondern generell mit dem Auflisten mit noch mehr Angaben.

Guck doch mal - ich habe es schon geschafft, das so hinzubekommen, dass da schon alles steht Mein erster php-Versuch! Klar, ich habe ein vorgefertigtes Tutorial verändert, aber ich freue mich schonmal.

PHP:
<?
 function CheckExt($filename, $ext) {
 $passed = FALSE;
 $testExt = "\.".$ext."$";
 if (eregi($testExt, $filename)) {
 $passed = TRUE;
 }
 return $passed;
 }
 
 //HIER ALLE VARIABLEN EINGEBEN
 $cat = "2"; //die Nummer der Kategorie
 $description = "Screencap Pirates of the Caribbean"; //die Beschreibung aller Bilder
 $key = "PotC Pirates of the Caribbean Screencap Screenshot"; //die Keywords
 $folderaddress = "http://meinezweitedomain.de/SSPotC/"; //die Adresse des auszulesenden Ordners
 
 
 //Define an array of common extensions.
 $exts = array("gif","jpg$|\\.jpeg","png","bmp");
 
 $dir = opendir(".");
 $files = readdir($dir);
 
 
 
 
 while (false !== ($files = readdir($dir))) {
 foreach ($exts as $value) {
 if (CheckExt($files, $value)) {
 echo " INSERT INTO `4images_images` VALUES (100, $cat, 1, '$files', '$description', '$key', 1106495218, 1, '$folderaddress$files', '', '', 1, 0, 0, 0, '0.00', 0); <br>";
 $count++; //Keep track of the total number of files.
 break; //No need to keep looping if we've got a match.
 }
 }
 
 }
 //Be a good script and clean up after yourself...
 closedir($dir);
 
 ?>

Nun brauche ich nur noch als Variable $picid,
die aus einer Durchnummerierung ab einer bestimmten Zahl besteht.

Es muss dann irgendwie was sein wie $picid = $picidbeginn + 1, nur halt als zulässigen php code, wobei ich dann $picidbeginn als die anzugebende Anfangszahl jedesmal ändere.
Wenn ich das habe, dann ist doch alles gut! *anfleh*
 
PHP:
<?
  function CheckExt($filename, $ext) {
    $passed = FALSE;
    $testExt = "\.".$ext."$";
    if (eregi($testExt, $filename)) {
      $passed = TRUE;
    }
    return $passed;
  }

  //HIER ALLE VARIABLEN EINGEBEN
  $cat = "2"; //die Nummer der Kategorie
  $description = "Screencap Pirates of the Caribbean"; //die Beschreibung aller Bilder
  $key = "PotC Pirates of the Caribbean Screencap Screenshot"; //die Keywords
  $folderaddress = "http://meinezweitedomain.de/SSPotC/"; //die Adresse des auszulesenden Ordners
  $start_id = 110;


  //Define an array of common extensions.
  $exts = array("gif","jpg$|\\.jpeg","png","bmp");

  $dir = opendir(".");
  $files = readdir($dir);

  $count = 0;
  while (false !== ($files = readdir($dir))) {
    foreach ($exts as $value) {
      if (CheckExt($files, $value)) {
        echo " INSERT INTO `4images_images` VALUES (".($start_id + $count).", $cat, 1, '".$files."', '".$description."', '".$key."', 1106495218, 1, '".$folderaddress.$files."', '', '', 1, 0, 0, 0, '0.00', 0); <br>";
        $count++; //Keep track of the total number of files.
        break; //No need to keep looping if we've got a match.
      }
    }

  }

  //Be a good script and clean up after yourself...
  closedir($dir);

?>
 
snuu hat gesagt.:
Und dabei habe ich nur 2 kurze Zeilen hinzugefügt und eine modifiziert :)

@Sicaine: Soviel zum Thema "einstündiger Aufwand".

Sven

oO haste das als Ansporn genommen das Script zu lesen? ;)
Btw: bin ich immer noch vom ersten Post ausgegangen ich halte einfach nix davon irgendjemanden jetzt irgendwas zu machen. Es seiden er(oder auch sie oO) öhm will php lernen dann ja aber so forget it!
 
Zurück