Seite 5 von 6 ErsteErste 123456 LetzteLetzte
Ergebnis 81 bis 100 von 104

Thema: Der 'große' PHP-Thread

  1. #81
    Zitat Zitat von masterquest
    So, ist zwar mehr SQL als PHP, aber egal.
    Wo liegt der Fehler in folgendem SQL-String (ist wahrscheinlich was triviales, aber ich bin nicht so gut in MySql)?
    PHP-Code:
    $query "UPDATE pages SET (`inhalt`=`jkdlg ein<br />Test`, `name`=`dasyg`) WHERE `id`=`3`"

    Ömm. ich glaube das wird so geschreiben

    PHP-Code:
    $query "UPDATE `pages` SET `inhalt` = 'jkdlg ein<br />Test', `name` = 'dasyg' WHERE `id` LIKE '3'"
    Also soweit ich weiss keine Klamma Sätzen dann noch immer lehrzeichen swischen ` machen achja und wenn möglich das was rein soll immer in Einfachen klammern schreiben (' und ' )

    Das müsste klappen sicher bin ich nett !

  2. #82
    Zitat Zitat von dadie
    Ömm. ich glaube das wird so geschreiben

    PHP-Code:
    $query "UPDATE `pages` SET `inhalt` = 'jkdlg ein<br />Test', `name` = 'dasyg' WHERE `id` LIKE '3'"
    Also soweit ich weiss keine Klamma Sätzen dann noch immer lehrzeichen swischen ` machen achja und wenn möglich das was rein soll immer in Einfachen klammern schreiben (' und ' )

    Das müsste klappen sicher bin ich nett !
    Funzt. thx.
    Ich dachte, man müsste das Klammern, weil's bei diversen anderen Sachen (insert) auch so ist.

    Edit:
    Habe statt LIKE = benutzt, Dingsi.

    Geändert von Lukas (25.01.2005 um 14:17 Uhr)

  3. #83
    Benutz lieber WHERE id = '3', da..:
    Zitat Zitat von chocie
    Que?
    Sonst noch alles frisch?
    LIKE frisst mehr Performace als =, da LIKE eben das tut was es bedeutet: like = ähnlich.
    Like sucht also Werte die 'a' ähnlich sind. Gut... da die % fehlen, sucht LIKE AFAIK tatsächlich nur Felder in denen Tatsächlich nur das 'a' steht, aber logischerweise frisst LIKE mehr Performance als = weil es eben nach Ähnlichkeiten sucht und nicht einfach nur das rauspickt das dem Suchstring enspricht.
    Also erkläre ich Dadies Behauptung einfach mal als absoluten Quatsch, bis er mir Fakten Präsentiert die mich vom Gegenteil überzeugen.

  4. #84

    chinmoku Gast
    Hätte da auch mal eine Frage:

    Wie wichtig ist es eigentlich php-code in verschiedene Zeilen bzw. Spalten zu packen.
    Bsp.

    PHP-Code:
    $beitrag  $_POST['beitrag']; 
    $ip       $_SERVER['REMOTE_ADDR']; 

        
    $verbindung mysql_connect($host$user$pwd); 
        
    mysql_select_db($db); 
    Hätte im Grunde auch was anderes nehmen können. Hätte es irgendwas verändert, wenn ich $verbindung unter $ip gesetzt hätte - in der gleichen Spalte?

    Das ist mir nämlich recht suspekt.

  5. #85
    Das sollte nichts ändern. Der Interpreter überspringt die Whitespaces. Theoretisch könnte man (glaub' ich) den gesamten Code einer Datei in eine Zeile schreiben, was aber ziemlich unübersichtlich wäre.

  6. #86
    @ chinmoku:
    PHP-Code:
    $beitrag=$_POST['beitrag'];$ip=$_SERVER['REMOTE_ADDR'];$verbindung=mysql_connect($host,$user,$pwd);mysql_select_db($db); 
    dürfte auch funktionieren.

  7. #87
    Zitat Zitat von masterquest
    Das sollte nichts ändern. Der Interpreter überspringt die Whitespaces. Theoretisch könnte man (glaub' ich) den gesamten Code einer Datei in eine Zeile schreiben, was aber ziemlich unübersichtlich wäre.
    Dafür bietet das Kommandozeileninterface auch gleich einen Parameter. php -w <Datei> gibt den reduzierten Code aus.

  8. #88
    Naja, es geht auch ohne Leerzeilen und -zeichen, aber es ist sehr viel übersichtlicher:
    PHP-Code:
    # Unübersichtlich:
    $bla='blub';
    $abc='def';
    if(
    $bla==$blub){echo $bla.'='.$blub;}

    #Übersichtlich:
    $bla 'blub';
    $abc 'def';

    if(
    $bla == $blub)
    {
         echo 
    $bla '=' $blub;

    Beides bewirkt das selbe, das zweite ist aber sehr viel übersichtlicher!

  9. #89

    chinmoku Gast
    Danke ^^
    Ist echt übersichtlicher.
    Aber macht man diese Spaltensprünge mit Tab oder wie? ._.
    Und warum gerade solche Sachen wie "echo" etc. *-*

  10. #90
    Zitat Zitat von chinmoku
    Aber macht man diese Spaltensprünge mit Tab oder wie? ._.
    Entweder mit Tab oder mit mehreren Leerzeichen.
    Zitat Zitat
    Und warum gerade solche Sachen wie "echo" etc. *-*
    Das hat nix mit echo zu tun, man rückt immer innerhalb eines Blocks ein (Ein Block ist alles was zwischen { und } steht)

  11. #91
    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.).

  12. #92
    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.

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

  14. #94
    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).

  15. #95
    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.)

  16. #96
    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.

  17. #97
    @ 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.

  18. #98
    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

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

  20. #100
    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;
        }
    }
    ?>

Berechtigungen

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