Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten mit PHP aus MySQL-Datenbank laden; URL verschönern

Einklappen

Neue Werbung 2019

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

  • #16
    Wie wärs mit Fehlermeldungen lesen? Mein PHP sagt hier klar:

    Notice: Undefined variable: clean in C:\xampp\htdocs\test\test.php on line 10

    Die Variable $clean gibts außerhalb der Funktion nicht.

    Aber warum muss ich dir das sagen?

    Kommentar


    • #17
      Zitat von hellbringer Beitrag anzeigen
      Wie wärs mit Fehlermeldungen lesen? Mein PHP sagt hier klar:

      Notice: Undefined variable: clean in C:\xampp\htdocs\test\test.php on line 10

      Die Variable $clean gibts außerhalb der Funktion nicht.

      Aber warum muss ich dir das sagen?
      Danke für deine Antwort. Bei mir gibt es komischerweise keine Fehlermeldung.

      $clean müsste natürlich innerhalb der Funktion sein. Das ist mir auch schon aufgefallen. Das hilft leider auch nicht. Immer noch kein Output und keine Fehlermeldung.

      Aktueller Code:

      PHP-Code:
      <?php
      function toAscii($str) {
          
      $str "Das ist ein Test!";
          
      $clean preg_replace("/[^a-zA-Z0-9/_|+ -]/"''$str);
          
      $clean strtolower(trim($clean'-'));
          
      $clean preg_replace("/[/_|+ -]+/"'-'$clean);

          return 
      $clean;
          echo 
      $clean;
      }
      ?>

      Kommentar


      • #18
        http://php.net/manual/en/function.return.php

        http://php.net/manual/en/functions.user-defined.php

        Kommentar


        • #19
          du wirst dich nochmal ein bisschen mit Grundlagen auseinandersetzen müssen.
          Eine Funktion endet mit einem return-statement, alles was danach kommt wird nicht ausgeführt. Eine Funktion solle aber auch nichts ausgeben sondern eben etwas zurückgeben.
          Testweise ausgeben lassen kannst du dir das dann mit var_dump(toAscii("teststring"));

          Kommentar


          • #20
            Zitat von David1997 Beitrag anzeigen
            Danke für deine Antwort. Bei mir gibt es komischerweise keine Fehlermeldung.
            Dann ist dein Webserver schlecht konfiguriert. Fehlermeldungen zu verstecken ist mit Abstand das Schlechteste, das man machen kann, wenn man programmiert. Das wäre als das erste, um das du dich kümmern solltest, bevor du auch nur eine einzige Zeile PHP-Code schreibst.

            Kommentar


            • #21
              Zitat von hellbringer Beitrag anzeigen

              Dann ist dein Webserver schlecht konfiguriert. Fehlermeldungen zu verstecken ist mit Abstand das Schlechteste, das man machen kann, wenn man programmiert. Das wäre als das erste, um das du dich kümmern solltest, bevor du auch nur eine einzige Zeile PHP-Code schreibst.
              Normalerweise bekomme ich alle Fehler entsprechend angezeigt. Ich habe die Fehlerausgabe nicht deaktiviert.

              Kommentar


              • #22
                Zitat von David1997 Beitrag anzeigen
                Normalerweise bekomme ich alle Fehler entsprechend angezeigt.
                Da PHP nicht nach Lust und Laune sein Verhalten ändert, kann es nur an der Konfiguration liegen.

                Kommentar


                • #23
                  Hallo,
                  ich habe irgendwie Probleme mit der Funktion, da ich das mit dem Rückgabewert nicht ganz verstehe.

                  Ich habe das so verstanden: Die Funktion hat eine bestimmte Aufgabe/einen bestimmten Ablauf, der durchgeführt werden soll. Beispiel, ich habe folgendes:

                  PHP-Code:
                  $string "Test String";

                  echo 
                  $string
                  Das würde mir "Test String" ausgeben. Wenn ich nun allerdings eine Funktion (mit 'return') dazwischen einfüge, wird mir nicht "Test String" ausgegeben, sondern das Ergebnis der Funktion, welches mithilfe von "Test String" erzeugt wurde. Habe ich das so richtig verstanden?

                  Viele Grüße,
                  David.

                  Kommentar


                  • #24
                    Wenn eine Funktion eine Rückgabe liefert, bekommst Du ausschließlich auch nur diese zurück!
                    Was die Funktion genau zurückliefert, wird durch den Ablauf und die Aufgabe der Funktion entschieden. Parameter, die man dem Funktionsaufruf beifügt werden in sinnvollen Funktionen zum "Berechnen" des Rückgabewertes genutzt.
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar


                    • #25
                      http://php.net/manual/de/functions.returning-values.php

                      Kommentar


                      • #26
                        Hallo,
                        vielen Dank für den Link. Das erste Bespiel ist ja ziemlich einleuchtend. Ich glaube das nun verstanden zu haben.

                        Demnach müsste das ja so stimmen, oder?

                        Code:
                        PHP-Code:
                        <?php
                        function toAscii($str) {
                            
                        $clean preg_replace("/[^a-zA-Z0-9/_|+ -]/"''$str);
                            
                        $clean strtolower(trim($clean'-'));
                            
                        $clean preg_replace("/[/_|+ -]+/"'-'$clean);
                            return 
                        $clean;
                        }
                        echo 
                        toAscii("Das ist ein Test.");
                        ?>
                        Ich erhalte hier allerdings diese zwei Warnungen:

                        PHP-Code:
                        Warningpreg_replace(): Unknown modifier '_' in /var/www/USERNAME/html/test.php on line 3

                        Warning
                        preg_replace(): Unknown modifier '_' in /var/www/USERNAME/html/test.php on line 5 


                        Was mache ich falsch?

                        Grüße,
                        David.

                        Kommentar


                        • #27
                          Was mache ich falsch?
                          du benutzt den RegExp-Delimiter unescaped in der RegExp. Am einfachsten ist hier den Delimiter zu ändern.

                          Kommentar


                          • #28
                            Davon abgesehen willst du das selbe Zeichen zweimal ersetzen. Mir kommt so vor, als probierst du einfach nur planlos herum. Warum nimmst du dann nicht gleich eine fertige Lösung?

                            Kommentar


                            • #29
                              Zitat von hellbringer Beitrag anzeigen
                              Davon abgesehen willst du das selbe Zeichen zweimal ersetzen. Mir kommt so vor, als probierst du einfach nur planlos herum. Warum nimmst du dann nicht gleich eine fertige Lösung?
                              Aber, ich benutze ja eine fertige Lösung. Hierher habe ich den Code: http://cubiq.org/the-perfect-php-clean-url-generator

                              Kommentar


                              • #30
                                OK, der Code ist wohl nicht das Gelbe vom Ei. Aber gibt ja hunderte fertige Lösungen.

                                z.B.:

                                https://github.com/cocur/slugify
                                https://github.com/jbroadway/urlify
                                https://github.com/danielstjules/Str...eplacement----

                                Kommentar

                                Lädt...
                                X