Ankündigung

Einklappen
Keine Ankündigung bisher.

Prüfung ob URL vorhanden

Einklappen

Neue Werbung 2019

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

  • Prüfung ob URL vorhanden

    Hallo,

    ja, so ähnliche Thread gibt es schon hunderte Mal. Ja, sone Anfrragen kommen hundert Mal. Ja, auch bei Google gibt es viel dazu. ABER ich bin immernoch nicht schlau genug um die Lösung zu finden.

    BITTE:
    - Nicht drauf rumhacken, dass man sowas schon können sollte
    - Nicht blöd anmachen, weil ich hier nach Hilfe suche
    - keine blöden Kommentare hinterlassen, wenn es nicht zu Lösung beiträgt

    Das übliche:
    - Jaja ich hab kein Programmierer, der mir hilft
    - Rumheuel und ein auf Selbstmitleid machen
    - Betteln, nach Konstruktiver HILFE!

    Endlich zum Problem:
    Ich will eine überprüfen, ob eine bestimmte URL (Unterseite) existiert und wenn ja, dann ein Icon (Bild) anzeigen lassen... Was ich auf verschiedenen Seiten und Google gefunden habe war schon nicht schlecht, aber zur Lösung hat doch nicht gereicht. Irgendwas läuft noch nicht. Geh davon aus, dass es an der URL liegt (diese sollte eigentlich Variable sein, also einfach nur der Text ob "../x/" vorhanden ist).

    Beispielseiten:
    "http://www.backpacker-reise.de/backpacking-in-asien/"
    "http://www.backpacker-reise.de/backpacking-in-asien/unterkunft/"

    Code:

    PHP-Code:
    <?php
        
    //Funktion deklarieren
        
    function url_check($url) {
            
    $hdrs = @get_headers($url);
            return 
    is_array($hdrs) ? preg_match('/^HTTP\\/\\d+\\.\\d+\\s+2\\d\\d\\s+.*$/',$hdrs[0]) : false;
        };
     
        
    //URL pruefen
        
    if(url_check('http://www.backpacker-reise.de/backpacking-in-asien/unterkunft/')){
            
    //URL gueltig
            
    echo '<img src="http://www.backpacker-reise.de/wp-content/uploads/2014/05/Unterkunft.png" alt="Unterkunft" height="60" width="60" />';
        } else {
            
    //URL ungueltig
            
    echo 'geht nicht';
        };
    ?>
    Die URL, die geprüft ist noch hart reingeschrieben... Eigentlich sollte sie wie oben geschrieben nur auf ../unterkunft/" geprüft werden. Aber eins nach dem anderen.

    DANKE FÜR HILFE!
    Mein [URL="http://www.globesurfer.de"]Weltreise Blog[/URL]

    Ich suche ein Programmierer für neue Projekte.


  • #2
    Sorry, es geht nicht ohne rumhacken. Denn
    Irgendwas läuft noch nicht
    ist keine Fehlerbeschreibung. Was erwartest du? Nenne ein Beispiel, wo das nicht läuft. Das obige funktioniert erstmal.
    Dann schau dir mit var_dump an was get_headers liefert und was dann geprüft wird.
    PHP-Code:
            $hdrs get_headers($url);
            
    var_dump($hdrs); 
    Deine fixen URL's können in einem Array untergebracht werden, ist aber im ersten Schritt nicht das Thema.
    PHP-Klassen auf github

    Kommentar


    • #3
      Da muß ich jspit zustimmen!

      Wenn Du das überflüssige Drittel Deines Threads nicht damit vergeuden würdest, uns zu sagen, wie wir Dich behandeln sollen, sondern lieber das Problem deutlicher zu umschreiben, wäre die Intention unsererseits sicher positiver, Dir weiterzuhelfen.

      Bitte beschreibe genauer, was passiert und was Du erwartet hättest.
      Als Anmerkung: Lös Dich von den @ vor Deinen Befehlen!
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

      Kommentar


      • #4
        Ja, auch bei Google gibt es viel dazu.
        http://php-de.github.io/#debugging

        ist immer ein guter anfang

        Kommentar


        • #5
          Offtopic
          Ich bin nur deswegen auf den Umgangston eingegangen, weil ich hier schon einige schlechte Erfahrungen gemacht habe. Es kann schon sehr motivationsdämpfend sein, wenn man ein Problem lösen will und dann mit kurzen Kommentaren zugeflamt wird. Trägt ja nicht zur Forenaktivität bei...

          Problembeschreibung

          Ich benutze auf jeder meiner Seiten (als "Page" bezeichnet, page-full.php) folgenden Code:

          PHP-Code:
           <?php
              
          //Funktion deklarieren
              
          function url_check($url) {
                  
          $hdrs = @get_headers($url);
                  return 
          is_array($hdrs) ? preg_match('/^HTTP\\/\\d+\\.\\d+\\s+2\\d\\d\\s+.*$/',$hdrs[0]) : false;
              };
           
              
          //URL pruefen
              
          if(url_check('http://www.backpacker-reise.de/backpacking-in-asien/unterkunft/')){
                  
          //URL gueltig
                  
          echo '<img src="http://www.backpacker-reise.de/wp-content/uploads/2014/05/Unterkunft.png" alt="Unterkunft" height="60" width="60" />';
              } else {
                  
          //URL ungueltig
                  
          echo 'geht nicht';
              };
          ?>
          Sollte es eine Unterseite geben, die mit "Unterkunft" bezeichnet ist, sollte ein Icon erscheinen. Ist eine solche Unterseite nicht vorhanden, dann sollte er nichts anzeigen. Dieser Code und eine solche Testunterseite habe ich bereits implementiert. Zum Beispiel gibt es die Seite:

          http://www.backpacker-reise.de/backpacking-in-asien/

          Es gibt auch eine Unterseite mit dem Namen Unterkunft siehe:Unterkunft Unterseite. Leider wird das Icon auf der Asien Seite nicht angezeigt, obwohl eine solche Unterseite existiert. Stattdessen wir die alternative "geht nicht" angezeigt, was ich nicht erwarte.

          Ziel:
          Ich möchte, wenn eine entsprechende Unterseite besteht ein Icon anzeigen, was anklickbar ist erstellen. Sollte die Seite nicht existieren, sollte zwar ein Icon zu sehen sein, was aber weder anklickbar ist noch farbe hat.

          Als Anmerkung: Lös Dich von den @ vor Deinen Befehlen!
          verstehe ich nicht.

          http://php-de.github.io/#debugging
          ist immer ein guter anfang
          Ich weiß nicht wie es andern geht, aber ich habe nicht wirklich die Zeit mir alle Feinheiten von PHP anzueignen =(
          Ist ja auch nicht jedermanns Sache eine Programmiersprache nach der anderen zu lernen, auch wenn man es gerne könnte.
          Mein [URL="http://www.globesurfer.de"]Weltreise Blog[/URL]

          Ich suche ein Programmierer für neue Projekte.

          Kommentar


          • #6
            Zitat von MrGlobing Beitrag anzeigen
            Als Anmerkung: Lös Dich von den @ vor Deinen Befehlen!
            verstehe ich nicht.
            Was ist jetzt an dem satz so schwer, dass man es nicht verstehen kann?

            Kommentar


            • #7
              @ unterdrückt Fehler. Fehler unterdrückt man nicht, man behandelt sie. URL-Validierung kann man mit php filter realisieren statt sich mit regex auf lange Sicht die Finger zu brechen.

              Das was du vorhast ist primär ein Routing-Utility, du solltest also besser Zentral mögliche URLs sammeln und anhand dieser Liste weiterarbeiten ( wie große Anwendungen das mit sogenannten named Routes tun).
              [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

              Kommentar


              • #8
                URL-Validierung im engeren Sinne ist im obigen Skript gar nicht das Thema. Der reguläre Ausdruck soll prüfen, ob mit get_headers so was wie "HTTP/1.1 200 OK" zurückkommt.
                PHP-Klassen auf github

                Kommentar


                • #9
                  Zitat von jspit Beitrag anzeigen
                  URL-Validierung im engeren Sinne ist im obigen Skript gar nicht das Thema. Der reguläre Ausdruck soll prüfen, ob mit get_headers so was wie "HTTP/1.1 200 OK" zurückkommt.
                  Stimmt, ich war etwas beeindruckt von dem doch alles mitteilenden Titel, Tschuldigung..

                  Da gibt es einige Wege, entweder man greift das per cURL ab und ignoriert den Body ( was default ist ) oder man nutzt eine der Zahlreichen Http-Clients auf Github, die bieten mitunter Methoden die den Erfolgsstatus des Requests zurückgeben ( true / false ).
                  [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                  Kommentar


                  • #10
                    Wie es aussieht bin ich wieder bei 0 -.-
                    Ich habe keine Ahnung was ich jetzt machen muss. Wie es funktioniert und so weiter. Ob cURL, Github oder names Routes.

                    Gibt es irgendwelche Skripte, die schon so fertig sind, dass ich meine URL's eintragen kann?
                    Gibt es irgendwo eine Anleitung wie ich sowas baue für einen Nicht-Programmierer?

                    Wie lange würde die Umsetzung für einen Programmierer dauern?
                    (Mit Hinsicht darauf, dass ich es wahrscheinlich wieder nicht selber machen kann und dafür bezahlen muss -.-)
                    Mein [URL="http://www.globesurfer.de"]Weltreise Blog[/URL]

                    Ich suche ein Programmierer für neue Projekte.

                    Kommentar

                    Lädt...
                    X