Seite 4 von 6 ErsteErste 123456 LetzteLetzte
Ergebnis 61 bis 80 von 104

Thema: Der 'große' PHP-Thread

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Du rückst einfach irgendwie ein. Ich mach das mit Tabs, allerdings ist deren Länge afaik vom Editor abhängig. Du kannst auch Leerzeichen verwenden, solltest aber immer gleich viele für eine Einrückung nehmen (z.B.vor etwas, das einfach eingerückt ist, stehen 4 Leerzeichen, cor etwas, das doppelt eingrückt ist, 8 usw.).

  2. #2
    Zitat Zitat von masterquest
    Ich mach das mit Tabs, allerdings ist deren Länge afaik vom Editor abhängig.
    Nein, ein Tab ist ein eigenständiges Zeichen und ist daher bei gleichem Font auch gleich lang. Allerdings wandeln manche Editoren Tabs in mehrere Leerzeichen um.

  3. #3
    Nope. Tab hat nichts im Font zu tun, sondern mit dem Anzeigeprogramm. afaik.

  4. #4
    Ein Tab ist ein Zeichen, allerdings hat die Schriftart nichts damit zu tun, wie es angezeigt wird... Ansonsten müßte bei Monospace-Schriftarten ein Tab genau so lang sein wie Space; es ist aber zwischen vier- und achtmal so lang.
    Das Tab-Zeichen wird immer interpretiert. Wie es interpretiert wird hängt von der Umgebung ab (und von der Einstellung, KWrite erlaubt beispielsweise beliebigt Breiten für Tab).

  5. #5
    Ich habe ein kleines Problem. Ich will eine Html-Datei auslesen, aber nicht komplett, sondern nur den Javascript-Teil. Anschließend soll das Ganze an den Browser geschickt werden (sprich: ich will den Html-Teil rausfiltern). Mein Php-Code:
    PHP-Code:
    <?php

    $file 
    file('test.html''r');
    $ttt false;
    foreach(
    $file as $i){
        if(
    $i == "<script language=\"javascript\">"){
            
    $ttt true;
        }
        if(
    $ttt){
            echo 
    $i;
        }
        if(
    $i == "</script>\n"){
            
    $ttt false;
        }
    }
    ?>
    Die Funktionsweise dürfte grunsätzlich klar sein: die Datei wird in ein Array gelesen. Anschließend wird durch das Array iteriert. Wenn der Scriptteil beginnt, wird $ttt auf true gesetzt. Anschließend wird die aktuelle Zeile ausgegeben, falls man im Scriptteil ist. Zu guter letzt wird überprüft, ob der Scriptteil beendet ist, und falls ja, $ttt wieder auf false gesetzt.

  6. #6
    @ masterquest:
    Ich glaube das lässt sich über Reguläre Ausdrücke noch besser bewerkstelligen. Nur hab ich mich bisher nie an die RegExp's rangetraut. Interessieren, wie die Lösung damit aussieht, würde mich allerdings auch.
    Vielleicht gibts hier ja Leute die das hinbekommen.
    Dann aber bitte den RegExp-Anteil ordentlich ausdokumentiert.

  7. #7
    Mit den regulären Ausdrücken hat's geklappt.
    ich habe die if-Abfragen durch folgenden Code ersetzt:
    PHP-Code:
    #if($i == "<script> language=\"javascript\">"){
    #ersetzt mit
    if(ereg('^(<script language="javascript">){1}'$i)){

    #if($i == "</script language="javascript">"){
    #ersetzt mit
    if(ereg('^(</script language="javascript">){1}'$i)){ 
    Der entsprechende reguläre Ausdruck lautet '^(<script language="javascript"){1}'. Im Prinzip ist das ganz einfach:
    das '^' steht dafür, dass der gesuchte String mit dem angegebenen String beginnen muss. Der angegebene String ist in diesem Fall '(<script language="javascript"){1}'. Das bedeutet, dass die Zeichenkette '<script language="javascript"' exakt einmal autreten darf. Sprich: Der Ausdruck überprüft, ob der String mit '<script language="javascript">' beginnt.
    Ich hoffe, das war einigermaßen verständlich, ich hab's nämlich auch noch nicht zu 100% verstanden

  8. #8
    Bei </script> muss kein language="" hin. .

  9. #9
    Ich würde es mit explode machen:
    PHP-Code:
    <?php
    $file 
    file('test.html''r');
    $inhalt implode($file);
    $temp explode('<script language="javascript">'$inhalt);
    $temp2 explode('<script language="javascript">'$temp[1]);
    echo 
    $temp2[0];
    ?>
    Diese Methode könnte man mit einer Schleife auch wiederholen

  10. #10
    Ifs sind zwar nett, aber es geht nichts über ein einfaches preg_match_all(). BTW, meine Version erkennt sowohl die alte Version mit language="" als auch die neue mit type="".
    PHP-Code:
    <?

    $string = "<bla></bla><script type=\"JavaScript\">Skript!</script>dfgdfg<script language=\"JavaScript\">Skript mit\nmehreren Zeilen!</script>fd<dh />";

    $pattern = "/(<script.*(type|language).*=\"JavaScript\".*>.*<\/script>)/isU";

    preg_match_all ($pattern, $string, $result);

    print_r ($result[0]); // dieses Array enhält fertig alle Skripte.

    ?>

  11. #11
    @ Jesus_666:
    Erklärst du uns... vor allem mir, eben den Regulären Ausdruck?
    Der Nachteil an den meisten Tuts ist nämlich die mangelnde Praxisbezogenheit im RegExp-Bereich. ¬_¬

    Man Dankt schonmal.

  12. #12
    Daß ich den mal eben so aus dem Ärmel geschüttelt habe liegt wohl auch daran, daß ich heute schon den ganzen Tag mit den Dingern arbeite - IRC-Logs nach bestimmten Regeln in HTML umwandeln und dabei auch noch fehlertolerant zu sein kann ziemlich anstrengen...


    Also gut. /(<script dürfte soweit klar sein: Der Schrägstrich leitet den Ausdruck ein und die Klammer eine Gruppe (BTW, vielleicht kann man die Klammern auch weglassen).
    Bei Perl-Regexps steht der Punkt für ein beliebiges Zeichen und das Sternchen für "null mal oder öfter". Nach <script kommt also erst mal eine beliebige Zahl beliebiger Zeichen, bis wir beim nächsten Teil sind.
    (type|language) ist wieder eine Gruppe. Der Querstrich steht dafür, daß entweder das eine oder das andere vorkommen kann. Also wird hier entweder type oder language gefunden. Danach wieder beliebig viele beliebige Zeichen... Die könnte man sogar weglassen, da nach dem type/language ja immer gleich das Gleichheitszeichen kommt.
    ="JavaScript".*>.*<\/script> muß ich wohl nicht weiter erläutern. Klartext und ein paar beliebige Zeichenfolgen. Die zweite Zeichenfolge ist der gesamte Inhalt des Tags.
    /isU: wir schließen den Ausdruck ab und hängen noch ein paar Optionen hinten dran: i sorgt dafür, daß Groß- und Kleinschreibung ignoriert werden. Man weiß ja nie, wie die Seite geschrieben ist, die man gerade ausnimmt. s sorgt dafür, daß . auch bei Zeilenumbrüchen funktioniert. So kann man mit .* mehere Zeilen erfassen. U sorgt dafür, daß der Regexp nicht so gierig ist - normalerweise würde er versuchen, so viel Text wie möglich zu erfassen und dabei vom ersten <script bis zum letzten </script> alles als ein Ergebnis nehmen. U läßt den Regexp nur soweit greifen, wie er mindestens funktioniert.


    Und wenn ihr denkt, daß das Ding unübersichtlich war, dann seht euch mal dieses Prachtstück an:
    Code:
    /(\[)(\d\d:\d\d)(])(\s+)(&lt;)(\S+)(&gt;)(\s+)(\[)([^\n\r(\d\d:\d\d)\[\]]+?)(\])([^\n\r]*?)(.*)/U[
    So, jetzt wißt ihr, womit ich meinen Nachmittag verbracht habe. ^_^ (BTW, damit finde ich in den Logs meiner IRC-DSA-Runde OOC-Zeilen.)

  13. #13
    Ein Tab ist ja auch nicht immer gleich breit, auch nicht im selben Editor.
    Wenn man zumbeispiel einen Editor hat, der 8 Zeichen für ein Tab nimmt (Standard), kann man vor einen Tab 7 Leerzeichen setzen, dann ist er nur noch 1 Zeichen breit.
    Standard für Tabulatoren ist 8 Zeichen, für kleinere Einrückungen sollte man Leerzeichen nehemen (Vim kann das zum Beispiel automatisch, man merkt garnicht, ob man jetzt einen Tabulator oder 4 Leerzeichen einfügt.)

  14. #14
    IMO ließe sich das noch besser über strpos() lösen, denn das verbaucht sehr viel weniger Resourcen als Reguläre Ausdrücke!
    PHP-Code:
    <?php
    $file 
    file('test.html''r');
    $ttt false;
    foreach(
    $file as $i){
        if(
    strpos($i'<script language="javascript">') !== false){
            
    $ttt true;
        }
        if(
    $ttt){
            echo 
    $i;
        }
        if(
    strpos($i'</script>') !== false){
            
    $ttt false;
        }
    }
    ?>

  15. #15
    Zitat Zitat
    Original geschrieben von N.2
    Verteufelt seien die, die Dreamweaver als gut bezeichnen;

    Dieses Ding hat mir von anfang an nur Probleme bereitet, Tags, die völlig sinnlos sind in massen hinzugefügt...

    Naja, wer sich das antun will;
    Ich bleib bei meinem Notepad;
    Dann ist dein Dreamweaver falsch eingestellt oder du kannst nicht damit umgehen.
    Mein Dreamweaver hat noch nicht einen einzigen unnötigen Tag erstellt wenn ich es nicht wollte.

  16. #16
    da muss ich zustimmen...
    ich arbeite seit 2 jahren mit dreamweaver 4 ultradev und es arbeitet einwandfrei und sauber. ansonsten benutze ich noch adobe golive, weil es ziehmlich gut für dynamische seiten ist.

    @topic
    hat eigendlich jemand schon mal was näheres zu dem gerücht um PHP 5.0 gehört?

  17. #17
    Gerüchte? Das sind doch AFAIK schon Tatsachen.
    Ein Artikel

    @ Dreamweaver Topic:
    Also ich arbeite zwar nicht viel mit Dreamweaver , aber die Sachen die ich mit DW mache sind Perfekt. Geiler Code, gutes Interface...was ist an DW schlecht?

  18. #18
    ACHTUNG NOOB ALARM!

    Also ich als absoluter PHP Noob (noch größer als Klein Viro ), benutze auch DW 4 und ich kann nur sagen das ist ein wunderbares Prog.

  19. #19

    PHP wird nicht unterstützt.

    moinsens! Also meine HP liegt auf dem 1und1 server, der wie es scheint nicht im geringsten php unterstützt...
    zu testzwecken: www.lucleonhart.de/test.php

    Da geht nichts. Kann ich da irgendwie direkt ein tool raufladen, das das geht? Mir geht es eigentlich nur darum, eine passwortabfrage zu machen (ein mitgliederbereich).
    Thanks schonmal!

  20. #20
    hmm

    ...meistens ist bei den anbietern PHP erst ab dem premium-account o.ä. integriert.

    wegen passwort, könnte man auch ein javascript mit MD5-krypto nehmen
    KLICKME!

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •