Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Einbinden einer Klasse

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Timestheus
    hat ein Thema erstellt PHP Einbinden einer Klasse.

    PHP Einbinden einer Klasse

    Servus...

    vorab schon mal ganz herzlichen Dank an Eure Zeit und Hilfe. Ich bin ein Neuling in Sachen PHP und bitte hier etwas um Nachsicht. Ich habe es schon mit Google versucht, bin aber da nicht fündig geworden.
    Oder doch fündig - habe die Tipps dort ausprobiert. Aber durch Unwissen vielleicht auch falsch ausprobiert.

    Gegeben ist
    Betriebssystem Windows
    MAMP
    PHP Version 7.2

    Ich habe unter MAMP ja das Verzeichnis htdocs, hier kann ich doch meine PHP Dateien einfügen und testen.

    Es existiert eine test.php Seite, welche ich mit localhost/test.php aufrufe

    PHP-Code:
     <?php     echo "Hallo";     ?>
    Funktioniert!
    Sobald ich jedoch versuche - laut Anleitung des Programmierers - eine Klasse einzubinden, erscheint das Hallo natürlich nicht mehr, da die Zeile davor den Fatalen Error wirft (nehme ich an).

    PHP-Code:
     <?php     require_once "excel_reader2.php";    echo "Hallo";     ?>

    Die entsprechende Klassen Datei ist im gleichen Ordner, sprich in htdocs.
    Ist das der falsche Ort?

    Danke Euch schonmal.











  • hellbringer
    antwortet
    Warum verwendet man überhaupt sowas steinzeitliches statt dem aktuellen PhpSpreadsheet?

    Einen Kommentar schreiben:


  • jonas3344
    antwortet
    Du hast alles richtig eingebunden. Das Ding ist von 2009. Also quasi aus dem letzten PHP-Jahrtausend.

    https://github.com/nuovo/spreadsheet-reader

    Da hats eine etwas aktuellere Version. Vielleicht läuft die. Aber wir können Dir nicht Fremdcode flicken hier.

    Einen Kommentar schreiben:


  • Timestheus
    antwortet
    hellbringer
    Erst mal richtiges Debugging kennen als reiner Anfänger. Da aber hier ja kaum wisst, welche Dateien das sind und welche Dinge da im Hintergrund ablaufen - war das auch gar nicht die Frage von mir. Die einzige Frage die ich hatte, ob das so richtig ist, dass man PHP Klassen einfach ins gleiche Verzeichnis schieben kann und dann aus der Basis Start PHP diese dann einfach direkt importieren kann. Wenn die Klasse im gleichen Verzeichnis ist also einfach mit "meineKlasse.php" oder wenn die Klasse im Ordner "darüber" ist einfach mit "/ordner/meineKlasse.php" - oder ob in PHP Klassen in spezielle Ordner / Orte müssen?

    Genauso die Frage - darf die Klasse direkt im htdocs Ordner von MAMP sein?
    Und die Frage stimmt denn meine Codezeile zum Einbinden der Klasse? Sind das Hochkomma oder Anführungszeichen. Vielleicht habe ich ja beim Einbinden der Klasse einen Syntaxfehler gemacht.

    Mir ging es nur darum - passt der Ablageort der Klasse unter MAMP und htdocs?
    Habe ich in der Codezeile des Einbinden was falsch gemacht?

    Wenn Ihr sagt - das passt alles so, ist schon ok so - dann weiß ich selber, dass was in der Klasse selber nicht stimmt.

    jonas3344
    Danke für den hilfreichen Link, habe ich gleich mal angepasst.

    protestix
    Die Dokumentation sagt nicht viel - also was das ablegen der Klasse angeht, wohin damit. Da scheiterte es ja bereits bei mir.


    Der Verfasser der Klasse hat ein Beispiel ZIP, welches seine Klasse enthält, eine Excel Datei und eine Beispiel PHP Datei für den Zugriff.
    https://code.google.com/archive/p/php-excel-reader/


    Es gibt vom Entwickler die Klassen Datei
    excel_reader2.php

    Es gibt eine Hauptdatei, welche aufgerufen wird
    example.php

    Und die Excel Datei, welche mit Hilfe der Klasse ausgewertet werden soll
    example.xls

    Alle 3 Dateien befinden sich bei mir im htdocs Verzeichnis.
    Ich habe die example.php Datei um den Debugging Bereich selber erweitert.
    PHP-Code:

    <?php

    error_reporting
    (-1);
    ini_set('display_errors'true);

    require_once 
    'excel_reader2.php';
    $data = new Spreadsheet_Excel_Reader("example.xls");

    ?>
    <html>
    <head>
    <style>
    table.excel {
     border-style:ridge;
     border-width:1;
     border-collapse:collapse;
     font-family:sans-serif;
     font-size:12px;
    }
    table.excel thead th, table.excel tbody th {
     background:#CCCCCC;
     border-style:ridge;
     border-width:1;
     text-align: center;
     vertical-align:bottom;
    }
    table.excel tbody th {
     text-align:center;
     width:20px;
    }
    table.excel tbody td {
     vertical-align:bottom;
    }
    table.excel tbody td {
        padding: 0 3px;
     border: 1px solid #EEEEEE;
    }
    </style>
    </head>

    <body>
    <?php echo $data->dump(true,true); ?>
    </body>
    </html>

    Wenn ich nun die example.php im Browser starte kommt es zu folgender Fehlermeldung:
    Parse error
    : syntax error, unexpected 'new' (T_NEW) in
    C:\MAMP\htdocs\excel_reader2.php
    on line
    916
    Wenn ich nun in die Klassendatei
    excel_reader2.php Line 916 schaue:
    PHP-Code:
     function Spreadsheet_Excel_Reader($file='',$store_extended_info=true,$outputEncoding='') {
      
    $this->_ole =& new OLERead();
      
    $this->setUTFEncoder('iconv');
      if (
    $outputEncoding != '') {
       
    $this->setOutputEncoding($outputEncoding);
      }
      for (
    $i=1$i<245$i++) {
       
    $name strtolower(( (($i-1)/26>=1)?chr(($i-1)/26+64):'') . chr(($i-1)%26+65));
       
    $this->colnames[$name] = $i;
       
    $this->colindexes[$i] = $name;
      }
      
    $this->store_extended_info $store_extended_info;
      if (
    $file!="") {
       
    $this->read($file);
      }
     } 

    Die Zeile 916 ist dabei diese:
    PHP-Code:
    $this->_ole =& new OLERead(); 


    Ich habe die 3 Beispieldateien ja direkt herunter geladen und nicht verändert, so dass diese ja eigentlich funktionieren sollten.
    Wo könnte ich da jetzt anfangen mit den Schrauben zu drehen?

    Einen Kommentar schreiben:


  • protestix
    antwortet
    Lies dir auch die Anleitung durch zu dieser Klasse bzw. Datei.

    Einen Kommentar schreiben:


  • jonas3344
    antwortet
    Wie du Fehlermeldungen anzeigen lassen kannst findest du hier:

    https://php-de.github.io/jumpto/faq/#debugging

    Einen Kommentar schreiben:


  • hellbringer
    antwortet
    Naja, Fehlermeldung lesen und die Ursache beheben?

    Einen Kommentar schreiben:

Lädt...
X