Php Normalform überprüfen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Joarden, 5. November 2007 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 5. November 2007
    Hallo,

    Ich habe ein Problem in PHP und weiß da leider nicht genau wie ich zur <lösung komme.

    Zur Aufgabe: Also, das Programm soll eine 8stellige Zahlenfolge einlesen, Beispielsweise "123".
    Nun soll geprüft werden, ob diese zahlenfolge identisch mit dieser ist "312".
    Wie ihr seht wurde die letzte zahl Abgeschnitten und wieder vorne angefügt.

    Das Programm hat nun eine Festgelegt folge, nehmen wir mal die 321. Nun soll der user eine eingabe machen (z.B die 123) und dann soll das programm prüfen ob diese zahl von dieser Zahlenfolge stammt.

    Ich hoffe ich habe es halbwegs verständlich erklärt.
    Hier mal mein Lösungsansatz..

    PHP:
    <? php
    $Zahlenfolge 
    = array( "123" )
    $Zahleneingabe  str_split ( "312" )
    $abschneidenvorne  substr ( " $Zahleneingabe " 1 );
    $abschneidenhinten  substr ( " $Zahleneingabe " 3 );
    ?>
    str_split(), um den Text in einen array abzulegen.
    Dann brauch ich doch zwei Schleifen, mit der ersten Schleife schneide ich über substr() die Zeichen von der Kette vorne ab, mit der zweiten hinten. Und dann muss ich diese zusammenfügen und in einem Array abspeichern. Danach halt die Kette mit dem gesamten array vergleichen.

    Ich weiß zwar wie ich das machen muss, kann es aber in PHP nicht realisieren da ich die Sprache noch nicht sogut kann. Es wäre echt super von euch wenn mir jemand den Rest lösen könnte, insbesondere diese schleife. Die Html eingabe usw. kann ich selbst schon alles .

    Gruß Joarden
     
  2. 6. November 2007
    AW: Php Normalform überprüfen

    es git:

    for ( ) schleifen also for (int i=0; i<40; i++) unter c++. außerdem gibt es noch die schönen while () schleifen... while (etwas passiert) oder do ... while (etwas passiert)
     
  3. 6. November 2007
    AW: Php Normalform überprüfen

    ich verstehe dein beispiel nicht so ganz
    könntest du vllt. mal ein paar beispiele geben was er finden soll und was nicht?
    weil so wie ich das verstanden habe würde
    PHP:
    if ( strpos ( $Zahleneingabe $Zahlenfolge [ 0 ]) !==  false ) { echo  "ist drin" ; }
    reichen
     
  4. 6. November 2007
    AW: Php Normalform überprüfen

    Also gut,

    Nehmen wir mal an das Programm akzeptiert nur die Zahl "123456".
    Nun gehören aber noch alle Zahlen zu der folge, wo die letzte Ziffer abgeschnitten und vorne wieder angefügt wurde. In diesem Fall "612345" oder halt weiter "561234", "456123" etc.
    Wenn man nun z.b 312345 eingibt gehört diese zahl z.b nicht zu der Zahlenfolge.
    Es wird Quasi nur das ENDE jeder zahlenfolge vorner wieder angefügt, und geprüft ob sie dann identisch mit der bereits gegebenen zahlenfolge sind.

    Deine Lösung glaube ich überprüft nur einen abschnitt bzw. sucht nur nach der bestimmten Zahlenfolge, welche aber dann nicht auffindbar ist denke ich, sondern nur ein Teil davon da sie sich selbst ja nicht von vorne wiederholt bin ich der Meinung.

    Habe das so auf phpcenter verstanden.
     
  5. 6. November 2007
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: Php Normalform überprüfen

    dann nimm doch die kette einfach 2x ^^
    PHP:
    if ( strpos ( $Zahleneingabe $Zahlenfolge [ 0 ]. $Zahlenfolge [ 0 ]) !==  false ) { echo  "ist drin" ; }
    strpos($Zahleneingabe, $Zahlenfolge[0].$Zahlenfolge[0]) gibt den boolschen wert false zurück wenn die zeicheneingabe nicht gefunden wurde
    da strpos() aber auch die zahl 0 zurückgeben kann braucht man das !== mit einem = mehr

    die zeichenkette in der gesucht wird wäre ja in diesem fall 123456123456
    folglich findet er den markierten teil und alle anderen möglichkeiten meiner meinung nach auch
    bin mir nur grad nicht sicher, ob dadurch ungewollte nebeneffekte auftreten

    EDIT: schande über mich, hab die parameter vertauscht xD ZDE macht abhängig
    verbessert siehe unten Php Normalform überprüfen - RR:Board
     
  6. 6. November 2007
    AW: Php Normalform überprüfen

    Habs mal ausgeführt..

    PHP:
    $zahlenfolge  "12344563" ;

    $zahleneingabe  "31234456" ;

    if (
    strpos ( $zahleneingabe $zahlenfolge [ 0 ]. $zahlenfolge [ 0 ]) !==  false ) { echo  "joah" ; }
    else echo 
    "Noe"
    Wie man sieht gehört "31234456" dazu aber ich bekomme ein Noe als ausgabe....

    1234456312344563

    Hmm woran liegt das?

    Gruß Joarden
     
  7. 6. November 2007
    AW: Php Normalform überprüfen

    $zahlenfolge ist kein array, deswegen wird anstatt key 0 der char an stelle 0 genommen.
    im klartext haste da stehen:
    PHP:
    if ( strpos ( "31234456" "11" ) !==  false ) { echo  "joah" ; }
    else echo 
    "Noe"
     
  8. 6. November 2007
    AW: Php Normalform überprüfen

    Verstehe, aber selbst wenn ich $zahlenfolge als array nehme funktioniert es nicht richtig.
    Wie komme ich nun zur Lösung des Problems?.

    Gruß Joarden
     
  9. 7. November 2007
    AW: Php Normalform überprüfen

    alternativ kannst ja ereg nehmen. ich kann mir grad auch keinen reim drauf machen warums mit strpos ned klappt (is auch scho spät ^^)
    PHP:
    <? php
        $zahlenfolge 
    "12344563" ;
        
    $zahleneingabe  "31234456" ;
        if(
    ereg ( $zahleneingabe $zahlenfolge . $zahlenfolge )) echo  "joah" ;
        else echo 
    "Noe"  ;
    ?>
    //edit

    ohje schmitz, du hast die parameter verstauscht und ich grübel bei php.net und mir fällts auch ned auf =)
    also so:
    PHP:
    <? php
        $zahlenfolge 
    "12344563" ;
        
    $zahleneingabe  "31234456" ;
        
    $pos  strpos ( $zahlenfolge . $zahlenfolge $zahleneingabe );
        if(
    $pos  !==  false ) echo  "joah" ;
        else echo 
    "Noe"  ;
    ?>
    @Joarden: du bist auch so ein held^^
     
  10. 7. November 2007
    AW: Php Normalform überprüfen

    Ahh super, vielen Dank, mir ists auch nicht aufgefallen obwohl ich mir viele funktionsbeispiele angeschaut habe.
    Bw´s sind raus!

    Gruß Joarden
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.