php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 05-02-2008, 13:56
Peacie
 Registrierter Benutzer
Links : Onlinestatus : Peacie ist offline
Registriert seit: Nov 2003
Beiträge: 341
Peacie ist zur Zeit noch ein unbeschriebenes Blatt
Peacie eine Nachricht über ICQ schicken Peacie eine Nachricht über AIM schicken Peacie eine Nachricht über Yahoo! schicken
Standard or methode

ich würde gerne fehler abfangen, mit or...

die frage nun, bei folgender code zeile:

PHP-Code:
$this->tpl_data=implode("",file($settings['tpl_path'].$tpl_file)) or test(); 
würde da erst der fehler ausgegeben, wenn implode fehlschlägt, oder nimmt er "or" und führt in diesem fall die funktion test() aus ?
EDIT:
oh man, wie komme ich drauf etwas zu fragen ohne es selber auszutesten

ok, er gibt den fehler aus...

macht es im obigen beispiel sinn, die ausgabe zu unterdrücken mittels @ ?
__________________
Mibau Datendesign - Online Ferienwelt

Geändert von Peacie (05-02-2008 um 13:59 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 05-02-2008, 13:59
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ersteres. Ein Vergleich wird nur soweit ausgewertet bis sein Ergebnis feststeht.
__________________
ich glaube
Mit Zitat antworten
  #3 (permalink)  
Alt 05-02-2008, 14:02
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

imho wirst du, wenn du die Standardfehlermeldungen von PHP unterdrücken und mit einer eingene Fkt arbeiten willst, den Funktionen @ voranstellen müssen. Also wenn du eine "eigene" Fehlerfunktion willst wirst du die @ setzen müssen.

Gruss

tobi

p.s. allenfalls wäre try-catch und die PHP Exception etwas für dein Fehlerhandling
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #4 (permalink)  
Alt 05-02-2008, 14:04
Peacie
 Registrierter Benutzer
Links : Onlinestatus : Peacie ist offline
Registriert seit: Nov 2003
Beiträge: 341
Peacie ist zur Zeit noch ein unbeschriebenes Blatt
Peacie eine Nachricht über ICQ schicken Peacie eine Nachricht über AIM schicken Peacie eine Nachricht über Yahoo! schicken
Standard

ok danke,
genau das möchte ich erreichen, da ich an der stelle ja weiss, was genau schief gehen kann werde ich eine eigene fehlerroutine bauen
__________________
Mibau Datendesign - Online Ferienwelt
Mit Zitat antworten
  #5 (permalink)  
Alt 05-02-2008, 14:38
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Bevor du da weiterarbeitest, werf ich einfach mal Exceptions in den Raum. Immerhin kann man so langsam auch mit PHP was anfangen.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #6 (permalink)  
Alt 05-02-2008, 14:44
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
...werf ich einfach mal Exceptions in den Raum
Dann haben wir die Exception zweimal im Raum
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #7 (permalink)  
Alt 05-02-2008, 14:45
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

ups!
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #8 (permalink)  
Alt 05-02-2008, 15:59
bla$ter
 Newbie
Links : Onlinestatus : bla$ter ist offline
Registriert seit: Oct 2003
Beiträge: 84
bla$ter ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Dann fange ich die einfach mal mit einem Code Schnipsel

PHP-Code:

class MyException extends Exception
{
    private static 
$error null;

    public static function 
handleMyError($errornr$errorstr)
    {
        
self::$error $errorstr;
    }

    public static function 
getMyError()
    {
        return 
self::$error;
    }
}

set_error_handler(array('MyException''handleMyError'), E_ALL);
$this->tpl_data=implode("",file($settings['tpl_path'].$tpl_file));
restore_error_handler();

            try{

                if (
MyException::getMyError() !== null)
                    throw new 
MyException(MyException::getMyError());

                
// tue, was immer du tust, wenn kein Fehler auftritt

            
}catch(MyException $e){
                
// es trat ein Fehler auf, und den kannst du hier behandeln, z.B. mit
                
echo $e->getMessage();
            } 
Mit Zitat antworten
  #9 (permalink)  
Alt 05-02-2008, 16:57
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

man könnte aber auch ganz althergebracht vorher überprüfen, ob das argument für implode ein array ist
Mit Zitat antworten
  #10 (permalink)  
Alt 05-02-2008, 17:28
bla$ter
 Newbie
Links : Onlinestatus : bla$ter ist offline
Registriert seit: Oct 2003
Beiträge: 84
bla$ter ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von 3DMax
man könnte aber auch ganz althergebracht vorher überprüfen, ob das argument für implode ein array ist
Ändert aber nix am Problem, weil file() als Operation an sich schon Fehlerträchtig ist.
Mit Zitat antworten
  #11 (permalink)  
Alt 05-02-2008, 18:13
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von bla$ter
Ändert aber nix am Problem, weil file() als Operation an sich schon Fehlerträchtig ist.
äh, file_exists is_readable ?
ich merke schon, es scheint out zu sein, im programm überprüfungen durchzuführen.
Mit Zitat antworten
  #12 (permalink)  
Alt 05-02-2008, 18:35
bla$ter
 Newbie
Links : Onlinestatus : bla$ter ist offline
Registriert seit: Oct 2003
Beiträge: 84
bla$ter ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von 3DMax
äh, file_exists is_readable ?
ich merke schon, es scheint out zu sein, im programm überprüfungen durchzuführen.
Ne, du benutzt es einfach falsch. Mit file_exists() prüfst du auf die physische Existenz auf der Platte, mit is_readable() prüfst du, ob der PHP Prozess berechtigt ist, das File zu lesen. Das würde also nur bedeuten, das Dateisystem hat nichts dagegen, das du das File liest, aber lesen dürfen und ein Handle darauf bekommen sind immer noch zwei paar Schuhe.
Mit Zitat antworten
  #13 (permalink)  
Alt 05-02-2008, 18:50
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von bla$ter
Das würde also nur bedeuten, das Dateisystem hat nichts dagegen, das du das File liest, aber lesen dürfen und ein Handle darauf bekommen sind immer noch zwei paar Schuhe.
aha - wenn schon das dateisystem nichts dagegen hat, wer könnte dann deiner meinung nach etwas dagegen haben?
Mit Zitat antworten
  #14 (permalink)  
Alt 05-02-2008, 19:36
bla$ter
 Newbie
Links : Onlinestatus : bla$ter ist offline
Registriert seit: Oct 2003
Beiträge: 84
bla$ter ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von 3DMax
aha - wenn schon das dateisystem nichts dagegen hat, wer könnte dann deiner meinung nach etwas dagegen haben?
Zum Beispiel der Prozess, der ein Lock auf das File hält, is_readable prüft nämlich nur die Dateirechte, ohne die Datei dabei zu öffnen. Lässt sich ganz einfach anhand der Zugriffszeiten der Dateien nachschlagen.
Mit Zitat antworten
  #15 (permalink)  
Alt 05-02-2008, 20:00
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von bla$ter
Zum Beispiel der Prozess, der ein Lock auf das File hält, is_readable prüft nämlich nur die Dateirechte, ohne die Datei dabei zu öffnen.
ganz sicher? also ich glaub's erst richtig, wenn ich es selbst überprüft habe.

aber irgendwie gelingt es mir nicht die datei zu sperren. eben gestestet auf windows und linux, mit identischem ergebnis.

PHP-Code:
$file 'testfile.txt';


function 
test_file($file)
{
  
$str '<br />';
  if(
file_exists($file))
  {
    
$str .= 'Schön, die Datei existiert schon mal ...<br />';
  }

  if(
is_readable($file))
  {
    
$str .= '... und lesbar ist sie auch noch :)<br />';
  }
  return  
$str.'-------------------<br />';
}

echo 
'Vorher: '.test_file($file);

$fp fopen($file'w+');
if(
flock($fpLOCK_EX))
{
  echo 
'Datei ist jetzt gesperrt<br />';
}

echo 
'Danach: '.test_file($file);


echo 
'Und jetzt versuchen wir die Datei zu öffnen - ';
if(
fopen($file'w+'))
{
  echo 
'OK';
}
else
{
  echo 
'FAILED';

ausgabe:
Code:
Vorher: 
Schön, die Datei existiert schon mal ...
... und lesbar ist sie auch noch :)
-------------------
Datei ist jetzt gesperrt
Danach: 
Schön, die Datei existiert schon mal ...
... und lesbar ist sie auch noch :)
-------------------
Und jetzt versuchen wir die Datei zu öffnen - OK
irgendwie erhalte ich immer zugriff auf die datei ;)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:05 Uhr.