3 PHP scripte zur gleichen zeit ausführen?

Hi

Nur ne Frage:
Ist das richtiger?

PHP:
<?php

erzeugen('/img1/');
erzeugen('/img2/');
erzeugen('/img3/');

function erzeugen($neues_verzeichnis) 
{ 

$update_thumbs=true; 

$thumb_w=76; 

$thumb_h=90; 

$thumb_q=95; 


$neues_verzeichniss = '/img1/';

$base_dir='uploaded'; 

$gal_name='fadingdreamsgallery'; 



if(isset($_GET["update"])&&$_GET["update"]=="true")$update_thumbs=true; 

if(isset($_GET["base"]))$base_dir=htmlentities(stripslashes($_GET["base"])); 

if(isset($_GET["name"]))$gal_name=htmlentities(stripslashes($_GET["name"])); 



$images=array(); 



$xm_str='<galname="'.$gal_name.'"base="'.$base_dir.'">'; 



if(is_dir($base_dir)&&$dhd=opendir($base_dir)){ 

while($file=readdir($dhd)){ 

$link=$base_dir.'/'.$file; 

if(is_file($link)){ 

$size=filesize($link); 

$measures=@getimagesize($link); 

array_push($images,$file); 

if($update_thumbs){ 

$thumb=createThumb($base_dir,$file,$measures[0],$measures[1]); 

}else{ 

$thumb=(is_file($base_dir.'/$neues_verzeichnis/'.$file))?'$neues_verzeichnis/'.$file:$file; 

} 

$xm_str.=' 

'.'<imgsrc="'.$file.'"thumb="'.$thumb.'"width="'.$measures[0].'"height="'.$measures[1].'"size="'.$size.'"/>'; 

} 

} 

closedir($dhd); 

} 



$xm_str.=' 

</gal>'; 



echo$xm_str;//testweise:'<pre>'.htmlentities($xm_str).'</pre>'; 



if($update_thumbs){ 

clearThumbs($base_dir,$images); 

} 



functionclearThumbs($base_dir,$images){ 

if(is_dir($base_dir.'/'.$neues_verzeichnis)&&$dhd=opendir($base_dir.'/'.$neues_verzeichnis)){ 

while($file=readdir($dhd)){ 

if(is_file($base_dir.'/'.$neues_verzeichnis.'/'.$file)){ 

$found=false; 

foreach($imagesas$val){ 

if($file==$val){ 

$found=true; 

break; 

} 

} 

if(!$found){ 

$u=unlink($base_dir.'/'.$neues_verzeichnis.'/'.$file); 

} 

} 

} 

closedir($dhd); 

} 

} 



functioncreateThumb($base_dir,$file,$w,$h){ 

global$thumb_w,$thumb_h,$thumb_q; 

$path=$base_dir.'/'.$file; 

if(!is_dir($base_dir.'/'.$neues_verzeichnis)){ 

mkdir($base_dir.'/'.$neues_verzeichnis,0777); 

} 

$temp=imagecreatefromjpeg($path); 

$r=$w/$h; 

$thumb_h=intval($thumb_w/$r); 

$small=imagecreatetruecolor($thumb_w,$thumb_h); 

if($suc=imagecopyresampled($small,$temp,0,0,0,0,$thumb_w,$thumb_h,$w,$h)){ 

$result=imagejpeg($small,$base_dir.'/$neues_verzeichnis/'.$file,$thumb_q); 

}else{ 

$result=false; 

} 

imagedestroy($temp); 

imagedestroy($small); 

if($result){ 

return'$neues_verzeichnis/'.$file; 

}else{ 

return$file; 

} 

} 







}


?>


thx

greets green
 
ich kann da keine großartige änderung sehen bis auf das du nun den php tag nach oben gesetzt hast.

Überleg mal was du machen möchtes du willst ja 3 verschiedene Verzeichnisse angeben daher macht es wenig sin wenn das Verzeichniss in der Funktion steht. Muß also auserhalb der funktion sein bwz als parameter übergeben werden.Genau so wie die anderen Werte die Bild größe bestimmen unsw.

Ich mach dir mal eine kleine änderung den rest mußte aber selber dann noch ändern

PHP:
<?php

function erzeugen($neues_verzeichnis,$thumb_w,$thumb_h,$thumb_q) 
{ 

$update_thumbs=true;
$base_dir='uploaded'; 
$gal_name='fadingdreamsgallery'; 

if(isset($_GET["update"])&&$_GET["update"]=="true")$update_thumbs=true; 
if(isset($_GET["base"]))$base_dir=htmlentities(stripslashes($_GET["base"])); 
if(isset($_GET["name"]))$gal_name=htmlentities(stripslashes($_GET["name"])); 

$images=array(); 

$xm_str='<galname="'.$gal_name.'"base="'.$base_dir.'">'; 

if(is_dir($base_dir)&&$dhd=opendir($base_dir)){ 

while($file=readdir($dhd)){ 

$link=$base_dir.'/'.$file; 

if(is_file($link)){ 

$size=filesize($link); 

$measures=@getimagesize($link); 

array_push($images,$file); 

if($update_thumbs){ 

$thumb=createThumb($base_dir,$file,$measures[0],$measures[1]); 

}else{ 

$thumb=(is_file($base_dir.'/$neues_verzeichnis/'.$file))?'$neues_verzeichnis/'.$file:$file; 

} 

$xm_str.=' 

'.'<imgsrc="'.$file.'"thumb="'.$thumb.'"width="'.$measures[0].'"height="'.$measures[1].'"size="'.$size.'"/>'; 

} 

} 

closedir($dhd); 

} 

$xm_str.=' 

</gal>'; 



echo$xm_str;//testweise:'<pre>'.htmlentities($xm_str).'</pre>'; 



if($update_thumbs){ 

clearThumbs($base_dir,$images); 

} 

functionclearThumbs($base_dir,$images){ 

if(is_dir($base_dir.'/'.$neues_verzeichnis)&&$dhd=opendir($base_dir.'/'.$neues_verzeichnis)){ 

while($file=readdir($dhd)){ 

if(is_file($base_dir.'/'.$neues_verzeichnis.'/'.$file)){ 

$found=false; 

foreach($imagesas$val){ 

if($file==$val){ 

$found=true; 

break; 

} 

} 

if(!$found){ 

$u=unlink($base_dir.'/'.$neues_verzeichnis.'/'.$file); 

} 

} 

} 

closedir($dhd); 

} 

} 



functioncreateThumb($base_dir,$file,$w,$h){ 

global$thumb_w,$thumb_h,$thumb_q; 

$path=$base_dir.'/'.$file; 

if(!is_dir($base_dir.'/'.$neues_verzeichnis)){ 

mkdir($base_dir.'/'.$neues_verzeichnis,0777); 

} 

$temp=imagecreatefromjpeg($path); 

$r=$w/$h; 

$thumb_h=intval($thumb_w/$r); 

$small=imagecreatetruecolor($thumb_w,$thumb_h); 

if($suc=imagecopyresampled($small,$temp,0,0,0,0,$thumb_w,$thumb_h,$w,$h)){ 

$result=imagejpeg($small,$base_dir.'/$neues_verzeichnis/'.$file,$thumb_q); 

}else{ 

$result=false; 

} 

imagedestroy($temp); 

imagedestroy($small); 

if($result){ 

return'$neues_verzeichnis/'.$file; 

}else{ 

return$file; 

} 

} 


}

// funktion aufruf
erzeugen ('/img1/',76,90,95);
erzeugen ('/img2/',76,90,95);
erzeugen ('/img3/',76,90,95);

?>

Mfg Splasch
 
Zuletzt bearbeitet:
Hi

Hey erstmal ein riesen Dakeschön an dich... ehrlich du weißt nicht wie du mir damit hilfst.
Ich habe mir deinen Script auch mehrfach durchgelesen und einiges dabei entdeckt was mir hilfreich ist.
Ich hätte nur noch eine kleine Frage vielleciht hast du kurz Zeit um sie mir zu beantworten.
Ich habe mir den Script echt durchgelesen und so weiter, aber ich finde nicht das was ich noch brauche. Du meinst ja den Rest soll ich selbst erledigen dazu bin ich auch echt bereit, aber ich weiß nicht was der Rest ist, kannst du mir viellleicht nur erklären was der Rest ist? Dann werde ich das versuchen selbst zu schreiben...
Wenn ich den Script aufrufe am Server passiert nämlich noch nichts es ist einfach weiß... er zeigt mir nichts an... woran liegt das?

Naja vielen Dank
greets green
 
Hi

Wenn ich deinen Script im Internet teste kommt nur ein weißer Bildschirm und das:
Code:
Parse error: syntax error, unexpected '{' in /usr/export/www/vhosts/funnetwork/hosting/partywien/jo/gut Kopie.php on line 36

Ich habe mir das auch schon angeschaut und das "{" weggegeben und verschoben usw.. aber es klappt nicht, warum?

greets green
 
Ich hab mir dein script nicht angesehen sondern nur übernohmen.
Der fehler liegt in Zeile 80 und zwar bei foreach($images as $val){


So sollte es nun zumindesten syntaktisch richtig sein was das scritp allerdings dann machen soll ist mir net so klar dürfte irgend so ein Bilder script sein das Datein einliest und in andere größen verhältniss wieder speichert.

PHP:
<?php 

function erzeugen($neues_verzeichnis,$thumb_w,$thumb_h,$thumb_q)  
{  

$update_thumbs=true; 
$base_dir='uploaded';  
$gal_name='fadingdreamsgallery';  

if(isset($_GET["update"])&&$_GET["update"]=="true")$update_thumbs=true;  
if(isset($_GET["base"]))$base_dir=htmlentities(stripslashes($_GET["base"]));  
if(isset($_GET["name"]))$gal_name=htmlentities(stripslashes($_GET["name"]));  

$images=array();  

$xm_str='<galname="'.$gal_name.'"base="'.$base_dir.'">';  

if(is_dir($base_dir)&&$dhd=opendir($base_dir)){  

while($file=readdir($dhd)){  

$link=$base_dir.'/'.$file;  

if(is_file($link)){  

$size=filesize($link);  

$measures=@getimagesize($link);  

array_push($images,$file);  

if($update_thumbs){  

$thumb=createThumb($base_dir,$file,$measures[0],$measures[1]);  

}else{  

$thumb=(is_file($base_dir.'/$neues_verzeichnis/'.$file))?'$neues_verzeichnis/'.$file:$file;  

}  

$xm_str.='  

'.'<imgsrc="'.$file.'"thumb="'.$thumb.'"width="'.$measures[0].'"height="'.$measures[1].'"size="'.$size.'"/>';  

}  

}  

closedir($dhd);  

}  

$xm_str.='  

</gal>';  



echo$xm_str;//testweise:'<pre>'.htmlentities($xm_str).'</pre>';  



if($update_thumbs){  

clearThumbs($base_dir,$images);  

}  

functionclearThumbs($base_dir,$images){  

if(is_dir($base_dir.'/'.$neues_verzeichnis)&&$dhd=opendir($base_dir.'/'.$neues_verzeichnis)){  

while($file=readdir($dhd)){  

if(is_file($base_dir.'/'.$neues_verzeichnis.'/'.$file)){  

$found=false;  

foreach($images as $val){  

if($file==$val){  

$found=true;  

break;  

}  

}  

if(!$found){  

$u=unlink($base_dir.'/'.$neues_verzeichnis.'/'.$file);  

}  

}  

}  

closedir($dhd);  

}  

}  



functioncreateThumb($base_dir,$file,$w,$h){  

global$thumb_w,$thumb_h,$thumb_q;  

$path=$base_dir.'/'.$file;  

if(!is_dir($base_dir.'/'.$neues_verzeichnis)){  

mkdir($base_dir.'/'.$neues_verzeichnis,0777);  

}  

$temp=imagecreatefromjpeg($path);  

$r=$w/$h;  

$thumb_h=intval($thumb_w/$r);  

$small=imagecreatetruecolor($thumb_w,$thumb_h);  

if($suc=imagecopyresampled($small,$temp,0,0,0,0,$thumb_w,$thumb_h,$w,$h)){  

$result=imagejpeg($small,$base_dir.'/$neues_verzeichnis/'.$file,$thumb_q);  

}else{  

$result=false;  

}  

imagedestroy($temp);  

imagedestroy($small);  

if($result){  

return'$neues_verzeichnis/'.$file;  

}else{  

return$file;  

}  

}  


} 

// funktion aufruf 
erzeugen ('/img1/',76,90,95); 
erzeugen ('/img2/',76,90,95); 
erzeugen ('/img3/',76,90,95); 
?>

Mfg Splasch
 
Hi

Ja es ist ein Script der Bilder aus einem Ordner nimmt und sie in einem anderen Ordner kleiner wieder abspeichert.

Wenn ich ihn jetz probiere kommt wieder, nur ein weißer Bildschirm und er tut gar nichts. Sobald ich die Seite aufrufe passiert nichts (rechts unten im Browser steht auch fertig). Warum führt der Server erzeugen() nicht aus? Ich vertehe das nicht...

greets green
 
Hi

Im Anhang siehst du wie meine Ordner aufgebaut sind...
Ich glaube da ist nichts falsch...

Vielleicht liegt es an etwas aderem... ich verwende mamp das ist ein offline Server der PHP 4 und 5 unterstützt...

Der Bildschirm ist weiß sonst nix...

Ich bin am verzweifeln :(


greets green
 

Anhänge

  • Bild 1.png
    Bild 1.png
    9,6 KB · Aufrufe: 8
Der Bildschirm ist weiß sonst nix...

Ich bin am verzweifeln

Nach dem Script teil wirst du nie was im Browser fenster sehen. Wie auch im script wird ja auch keine ausgabe gemacht.

Dieses Script von dir macht nix anderes als still und heimlich im Hintergrund zu arbeiten.
Das einzige was du bei dem Script sehen wirst wenn alls richtig ist. Sind die neu erstellten Datein in deinem Ordner.

Normal lautet die lokale adresse 127.0.0.1 oder localhost diese Adresse ist in der lokalen eben dein Verzeichnis wo xampp installiert ist im unter Verzeichniss htdocs unter dem beginnt dann dein Webroot verzeichniss. Also darunter müßte dann dann Basedir Verzeichis upload stehen.

Ps.
Dein Screenshot ist leider nicht sehr Ausagekräftig daraus kann man nicht schliessen in welchen Verzeichnis du dich befindet.

Mfg Splasch
 
Zurück