php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.11.2005, 16:35  
Benutzer
 
Registriert seit: 10.08.2004
Beiträge: 31
Finkman
Standard Script reagiert nicht?!?!

Hallo!
Ich habe folgendes Problem.
Ich habe eine Plattform mit Usern. Es gibt einen img_temp Ordner wo man per eingeschränktem FTP Zugang dort Bilder abloaden kann. Der User kann darauf hin eine neue Gallerie erstellen.

Mein Konzept ist:
Nach ein paar Abfragen ließt ein Script die Bilder nach einander aus dem temporären Ordner aus, skalliert sie auf eine genormte größe und legt die dann in einen passenden Ordner ab. Dannach werden die Thumbnails erstellt.

Mein Problem:
Auf meinem lokalen Rechner hab ich das schon ausprobiert. Wenn allerdings mehr als ca70 Bilder im Ordner sind brauch das skript länger als 30 sekunden und bricht ab. Deswegen zähle ich die vergange Zeit mit und breche dann selbst ab, sodass ich auf das nächste Script wechle und die Vorschaubilder erstelle.
Das klappt auf meinem lokalen Server super, jedoch auf dem Webspace ist mir auf gefallen, dass wenn ein script zu lange läuft da keine Exception kommt sondern es einfach stehen bleibt.
Und so auch bei meiner Gallerie, wenn man ein paar Bilder drin hat und es sind zu viele, bekommt man nichteinmal die Seite des scripts angezeigt. Man sieht dann immernoch die ausgangsseite mit dem link und in der Statusleiste steht dann nach ein paar Sekunden auch "Fertig".

Ich weiß net was ich tun soll.

Auf meinem PC läuft das neue PHP5 und auf dem Webserver des Anbieters
PHP4u Version 3.0
Based on PHP-5.0.2

Danke im Vorraus, mit freundichen Grüßen Sven
Finkman ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.11.2005, 16:38  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hallo,

beschränk dein Script doch darauf, nur 10 Bilder zu verarbeiten und sich danach selbst aufzurufen, mit einem Counter um dann eben die nächsten 10 zu verarbeiten.
Zergling-new ist offline  
Alt 11.11.2005, 17:15  
Gast
 
Beiträge: n/a
Standard Re: Script reagiert nicht?!?!

Zitat:
Zitat von Finkman
[...]Nach ein paar Abfragen ließt ein Script die Bilder nach einander aus dem temporären Ordner aus, skalliert sie auf eine genormte größe und legt die dann in einen passenden Ordner ab.[...]
Wie machst du das? Poste doch mal bitte deinen Code.

Gruß,
Andreas
 
Alt 11.11.2005, 17:39  
Benutzer
 
Registriert seit: 10.08.2004
Beiträge: 31
Finkman
Standard

Zitat:
Zitat von Zergling
beschränk dein Script doch darauf, nur 10 Bilder zu verarbeiten und sich danach selbst aufzurufen, mit einem Counter um dann eben die nächsten 10 zu verarbeiten.
Hab ich mir auch schon gedacht, aber isses net seltsam, dass da keine Exception filegt?
Code:
<?php session_start();
include 'autoload.inc';
?>
<html>

<head>
<?php

function microtime_float()
{
   list($usec, $sec) = explode(" ", microtime());
   return ((float)$usec + (float)$sec);
}

$Target = $_GET['ID'];
$secStart = time();
$time_start = microtime_float();


  $thumbsize=120;
  $normalsize =700;
  $imgDir = $Target;
  $srcDir = '../uploads/img_upload';
  $thmbDir = 'thumbs';
  $stellen = 3;
  $i = 0;

if(!file_exists($imgDir)) mkdir($imgDir);
if(!file_exists($imgDir .'/' .$thmbDir)) mkdir($imgDir .'/' .$thmbDir);
if(!file_exists($imgDir .'/data')) mkdir($imgDir.'/data');
$handle=opendir($srcDir);
while ($imagefile_name = readdir ($handle)) {
$len = strlen($imagefile_name);
$ext = substr($imagefile_name,$len-4,4);
    if (($imagefile_name != "." && $imagefile_name != "..") && (($ext == ".jpg") || ($ext == ".JPG")))
    {
    $imageNumber = '' .$i;
    $imageNumber = str_pad($imageNumber,$stellen,'0',STR_PAD_LEFT);




   if((time()-$secStart)>= 29) { echo "

Sorry, but the Script was running for 29 Seconds and is at image number $i</p>\n

The konvertion has not yet finished. Because of the server definated execution timeout of 30 Seconds the Script cannot handel all of the selected images. Do not select more than 50 pictures!</p>";  return; }
   $imgfile = "$imagefile_name";
   list($width, $height) = getimagesize($srcDir .'/' .$imgfile);
   $imgratio=$width/$height;
   if ($imgratio>1){

     $onewwidth = $normalsize;
     $onewheight = $normalsize/$imgratio;}
   else{

     $onewheight = $normalsize;
     $onewwidth = $normalsize*$imgratio;}
    //save resized original
   $orig = ImageCreateTrueColor($onewwidth,$onewheight);
   $source = imagecreatefromjpeg($srcDir .'/' .$imgfile);
   imagecopyresized($orig, $source, 0, 0, 0, 0, $onewwidth, $onewheight, $width, $height);
   imagejpeg($orig,$imgDir .'/IMG_' .$imageNumber .'.jpg');




    $i++;
    }
}

echo "<meta http-equiv=\"refresh\" content=\"3; URL=thumb.php5?target=".$imgDir."&".strip_tags(session_id())."\">\n";
?>  <title></title>
</head>

<body><?php
closedir($handle);
$time_end = microtime_float();
$time = $time_end - $time_start;

$posP = strpos($time,'.');
$time = substr($time,0,3+$posP);
if($posP == 1) $time = '0' .$time;
echo "<font color=\"#000000\" face=\"Arial\" size=\"1\">Succsesfully generated resized Originals in $time seconds</font>";

?>

</body>

</html>
Finkman ist offline  
Alt 11.11.2005, 17:47  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Die Zeit mitzuzählen finde ich nicht gut. Ich würde ein Init machen, das schreibt die Dateinamen in die Session und dann gehts los. Finde ich sauberer, außerdem kannste dann ne Art Fortschrittsbalken ausgeben. Dein Skript ist mir jetzt etwas zu lang zum mal schnell nen-Logik-Fehler-suchen/finden
Zergling-new ist offline  
Alt 11.11.2005, 17:47  
Gast
 
Beiträge: n/a
Standard

Was steht denn in der besagten php.ini bei max_execution_time?

Bist Du sicher, dass der Wert dort größer gleich 30 Sekunden ist?
 
Alt 11.11.2005, 17:51  
Benutzer
 
Registriert seit: 10.08.2004
Beiträge: 31
Finkman
Standard

ja bin da ganz sicher!
was mir bei der Session auch noch auffält:
Das manchmal datensätze verschwinden... gibts da auch ne größen Beschränkung?


Was mir noch einfällt.
Ich kenne die Dateinamen net. Ich weiß nur, dass die Dateien *.jpg sind, wird aber wohl irgendwie gehen
Finkman ist offline  
Alt 11.11.2005, 17:57  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Finkman
ja bin da ganz sicher!
Folglich wird also bei diesem [minimierten] Skript nach 29 Sekunden, wie erwartet, 'blub' ausgegeben?
PHP-Code:
<?php
$secStart 
time();

while (
true)
  if ((
time()-$secStart)>= 29)
    die(
'blub');
?>
Zitat:
Zitat von Finkman
Ich kenne die Dateinamen net. Ich weiß nur, dass die Dateien *.jpg sind, wird aber wohl irgendwie gehen
glob()
 
Alt 11.11.2005, 18:04  
Benutzer
 
Registriert seit: 10.08.2004
Beiträge: 31
Finkman
Standard

Zitat:
Zitat von karl-150
Zitat:
Zitat von Finkman
ja bin da ganz sicher!
Folglich läuft also bei diesem [minimierten] Skript alles wie erwartet?
PHP-Code:
<?php
$secStart 
time();

while (
true)
  if ((
time()-$secStart)>= 29)
    die(
'blub');
?>
Zitat:
Zitat von Finkman
Ich kenne die Dateinamen net. Ich weiß nur, dass die Dateien *.jpg sind, wird aber wohl irgendwie gehen
glob()
ne da passiert auch nichts!
Ich hatte auch mal eine "endlos schleife" ausversehen in ein skript gebaut und da ist dann auch "nichts" passiert!

Zitat:
Finkman hat Folgendes geschrieben:
Ich kenne die Dateinamen net. Ich weiß nur, dass die Dateien *.jpg sind, wird aber wohl irgendwie gehen


glob()
Das Problem ist, bei der genannten Idee, dass ich net weiß welche Dateien schon bearbeitet sind.

Ich hatte aber grad im Bad *g* die Idee, dass ich einfach 10 durcharbeite die dann lösche und das skript nochmal starte.

Vielen Dank für die Tipps
Finkman ist offline  
Alt 11.11.2005, 18:06  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Finkman
ja bin da ganz sicher!
Kannst Du bitte mal einen Link auf Deine phpinfo posten?

Das kommt mir etwas Spanisch vor.

/edit:
Sorry, hatte das übersehen:
Zitat:
Zitat von Finkman
Man sieht dann immernoch die ausgangsseite mit dem link und in der Statusleiste steht dann nach ein paar Sekunden auch "Fertig".
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Diverses aus meinem Apache Logs robo47 Server, Hosting und Workstations 5 25.05.2007 22:45
Upload Script + Multible Server cyberstorm PHP Tipps 2006 5 11.10.2006 19:43
Script beendet sich ohne Fehlermeldung Zahl PHP Tipps 2006 6 04.06.2006 20:41
passwort script problem PHP Tipps 2006 8 15.02.2006 10:30
[Erledigt] php script und ixed PHP Tipps 2005-2 14 12.10.2005 13:34
[Erledigt] Verzögerung durch included Script? Umgehen? PHP Tipps 2005-2 4 10.07.2005 19:26
[Erledigt] Relay Script PHP-Fortgeschrittene 11 01.06.2005 16:02
[Erledigt] Hilfe bei Download Verwaltungs Script PHP Tipps 2005 8 04.05.2005 10:29
Fehler bei Script, welches Ordner erstellt PsychoEagle PHP Tipps 2005 3 23.04.2005 16:03
[Erledigt] python script mit php aufrufen... PHP-Fortgeschrittene 1 17.11.2004 17:11
PHP Script aus PHP aufrufen Stümper PHP Tipps 2004 5 26.09.2004 08:15
"das" Script oder "der" Script?? Simbo Off-Topic Diskussionen 31 16.09.2004 17:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php5 script session_start keine reaktion

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:41 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.