Ermitteln wo eine Ausgabe herkommt.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ermitteln wo eine Ausgabe herkommt.

    Hi

    Ich bastle mir mit Zend ein Projekt.
    Jetzt gibt mir scheinbar Zend auf einmal den Namen eines Controllers aus - noch über die eigentliche Ausgabe der App.
    Der Quellcode sieht also folgendermaßen aus:

    HTML-Quellcode

    1. xyzName
    2. <html>
    3. ...
    4. </html>


    Ich möchte nicht weiter drauf eingehen, da es kein Thread über Zend werden soll.

    Um herauszufinden wo dieser ControllerName nun ausgegeben wird habe ich bereits einige Tricks probiert:
    • Nach Zend_Application::run(); einen Cookie setzen in der Hoffnung das php meckert - die Headerinfos wären bereits in datei xyz.php gesendet wurden
    • Header() aufrufe nach dem ausführen der App
    • Sämtliche Dateien durchsuchen
    • Xdebug mit webgrind sowie kcachegrind zum auffinden des echos/prints einsetzen.
    HM!? Nix gefunden. Xdebug habe ich mit Zuversicht installiert, da ich davon ausging hiermit schnell den bösen Peter zu finden,
    aber nein, scheinbar werden echo's nicht "profiled" da es ja auch keine Funktionen sondern Sturkturen von PHP sind.

    Juhu.

    Jetzt bin ich genervt und habe keine Lust jede einzelne Datei Quellcode zu durchleuchten,
    habt ihr irgendwelche Tips wie man z.B. alle Ausgaben von PHP nachvollziehen kann?
    Oder werden echo's mit xdebug vll. unter einem speziellen alias gespeichert?

    Naja ich hoffe ich habe euch jetzt nicht mehr verwirrt als mich selbst.

    lg
  • xyz am Stück sollte es nicht so oft geben. Danach könntest du mal greppen.

    Ansonsten wäre ich genau wie du vorgegangen - header senden um die Warnung zu provozieren.
    Das ist auch eigentlich ein bombensicheres Verfahren, wenn der Error Handler nicht gerade überschrieben ist.

    Wenn du aber bei headers_sent die Parameterreferenzen reingibst, findest du es auch so heraus:
    de.php.net/manual/de/function.headers-sent.php

    Quellcode

    1. // Ein Beispiel für den Einsatz der seit PHP 4.3.0 verfügbaren optionalen
    2. // Parameter file und line. Beachten Sie, dass $filename und $linenum für
    3. // einen späteren Einsatz übergeben werden.
    4. // Weisen Sie ihnen davor keine Werte zu.
    5. if (!headers_sent($filename, $linenum)) {
    6. header ('Location: http://www.example.com/');
    7. exit;
    8. // Wahrscheinlich wollen Sie hier eine Fehlermeldung auslösen
    9. } else {
    10. echo "Header bereits gesendet in $filename in Zeile $linenum\n" .
    11. "Redirect nicht moeglich, klicken Sie daher statt dessen <a " .
    12. "href=\"http://www.example.com\">diesen Link</a> an\n";
    13. exit;
    14. }
    Alles anzeigen