WIE überprüfen ob Wort in Satz vorhanden?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • WIE überprüfen ob Wort in Satz vorhanden?

    Hallo,

    ich habe ein kleines Problem mit meinem Script.
    Und zwar ist es so, ich habe eine Funktion (load_logo) geschrieben.

    Diese Funktion soll überprüfen ob die Variable $logo_name (bzw. ein Wort aus der kompletten Variable) in dem Array $namen vorhanden ist, falls ja, gibt er dementsprechend 'nen Namen aus. Das was ausgegeben wird (normalerweise der Name) ist kleingeschrieben und gleichzeitig auch der Name des Logos, ohne .GIF dahinter.

    Hier erstmal mein Script:

    Quellcode

    1. <?php
    2. /**
    3. *@author VMK AG i. G., Flavius Constantin Borlovan
    4. *@date 16. August 2007
    5. *
    6. *Copyright 2007 by VMK AG i. G. Flavius Constantin Borlovan Die Bearbeitung und Änderung dieses Quelltextes sind erlaubt. Der Weiterverkauf ist verboten.
    7. *Disclaimer: DIESE SOFTWARE WIRD OHNE JEGLICHE SPEZIELLE ODER IMPLIZIERTE GARANTIEN ZUR VERFÃœGUNG GESTELLT.
    8. */
    9. define(LOGO_BIG, 1);
    10. define(LOGO_SMALL, 0);
    11. function load_logo($logo_name, $logo_art) {
    12. //$logo_name in kleinbuchstaben umwandeln
    13. strtolower($logo_name);
    14. //Array mit Gesellschaftsnamen, welche bereits ein Logo haben
    15. $namen = array(
    16. "wgv",
    17. "axa",
    18. "rhion",
    19. "dbv-winterthur",
    20. "inter",
    21. "gothaer",
    22. "interrisk",
    23. "vhv",
    24. "nationalesuisse",
    25. "helvetia",
    26. "patria",
    27. "arag",
    28. "badische",
    29. "condor",
    30. "devk",
    31. "aspecta",
    32. "allianz"
    33. );
    34. //Überprüfen ob groß / klein
    35. if($logo_art == LOGO_BIG) {
    36. $pfad = "./img/gesellschaften/";
    37. //$height = "60";
    38. } else {
    39. $pfad = "./img/gesellschaften/thumbs/";
    40. }
    41. $name_logo="";
    42. //Überprüfen ob $logo_name in $namen vorhanden
    43. foreach($namen as $name){
    44. if(stristr($name, $logo_name)) {
    45. $name_logo = $name;
    46. break;
    47. }
    48. }
    49. if($name_logo==""){
    50. $name_logo = "nopic";
    51. }
    52. //Logo definieren
    53. $logo = $pfad.$name_logo.".gif";
    54. //Ausgabe
    55. return $logo;
    56. }
    57. ?>
    Alles anzeigen


    Das Script soll wie gesagt folgendes machen ..
    Überprüfen ob $logo_name in $namen dabei ist. Wenn ja, soll das .GIF Bild praktisch $name.gif heißen.
    Ich hoffe ihr könnt mir weiterhelfen, wäre echt super .. ich komme da leider nicht mehr weiter. Das Ding liest zurzeit nur dann die Logos aus, wenn $namen alleine in $logo_name und gibt erst dann was aus. Zumindest habe ich da so das Gefühl. -,-

    Vielen Dank im Voraus!
    MfG, CookIe
  • Hi,
    deine Abbruchbedingung ist falsch. stristri liefert keinen bool'schen Wert. Dazu musst du speziell mit dem bool'schen Operator arbeiten.
    Diese Funktion kann sowohl das Boolsche FALSE zurückliefern, als auch einen nicht-Boolschen Wert, wie zum Beispiel0 oder "". der von einem einfachen if-Statement als FALSE ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die Boolsche Typen. Benutzen Sie deshalb den === Operator um den Rückgabewert dieser Funktion zu überprüfen.


    Quellcode

    1. if(stristr($name, $logo_name) === TRUE) {
  • Danke, aber:

    THX erstmal!

    Nach ewig langem Rumprobieren habe ich mich entschlossen einfach mal mein Array zu leeren, um zu schauen ob das Ding überhaupt überprüft, ob ein Wort, welches in $logo_name vorkommt, auch in dem Array vor kommt. Leider erfolglos. Die alleinstehenden Gesellschaftsnamen (ARAG & Allianz) werden angezeigt. AXA im Gegensatz nicht! Schließlich heißt es ja "AXA alternativ" . Habt ihr evtl. noch ein Vorschlag?

    Hier mein Code:

    Quellcode

    1. <?php
    2. /**
    3. *@author VMK AG i. G., Flavius Constantin Borlovan
    4. *@date 16. August 2007
    5. *
    6. *Copyright 2007 by VMK AG i. G. Flavius Constantin Borlovan Die Bearbeitung und Änderung dieses Quelltextes sind erlaubt. Der Weiterverkauf ist verboten.
    7. *Disclaimer: DIESE SOFTWARE WIRD OHNE JEGLICHE SPEZIELLE ODER IMPLIZIERTE GARANTIEN ZUR VERFÃœGUNG GESTELLT.
    8. */
    9. define(LOGO_BIG, 1);
    10. define(LOGO_SMALL, 0);
    11. function load_logo($logo_name, $logo_art) {
    12. //$logo_name in kleinbuchstaben umwandeln
    13. //strtolower($logo_name);
    14. //Array mit Gesellschaftsnamen, welche bereits ein Logo haben
    15. $namen = array(
    16. "asdtest"
    17. );
    18. //Überprüfen ob groß / klein
    19. if($logo_art == LOGO_BIG) {
    20. $pfad = "./img/gesellschaften/";
    21. //$height = "60";
    22. } else {
    23. $pfad = "./img/gesellschaften/thumbs/";
    24. }
    25. $name_logo=$logo_name;
    26. //Überprüfen ob $logo_name in $namen vorhanden
    27. foreach($namen as $name){
    28. if(stristr($name, $logo_name) !== FALSE) {
    29. $name_logo = $name;
    30. break;
    31. }
    32. }
    33. /*if($name_logo==""){
    34. $name_logo = "nopic";
    35. }*/
    36. //Logo definieren
    37. $logo = $pfad.$name_logo.".gif";
    38. //Ausgabe
    39. return $logo;
    40. }
    41. ?>
    Alles anzeigen
  • Also ich bin so langsam am Verzweifeln.
    Ich habe den Code so geändert, wie Du gesagt hast.

    Bestimmt siehst Du in dem Code auch, dass ich die Variable $name_logo standardmäßig auf $logo_name gesetzt habe, um zu sehen, was es genau ausgibt, anstatt dem Logo.
    Ich bekam folgende Ausgabe:

    Quellcode

    1. <img src="./img/gesellschaften/Badische%20Rechtsschutz.gif" height="60px" id="logo">


    "Badische Rechtsschutz" also. Eigtl. sollte das Script her gehen und überprüfen ob in dem Array entweder BADISCHE oder RECHTSSCHUTZ zu finden ist, falls ja, dann eben den Wert aus dem Array ausgeben. 0,ô Das ist allerdings leider nicht der Fall. (habe jetzt auch badische in dem Array eingetragen, stand ja vorher nicht drin).

    Und jetzt habe ich zum Testen wieder mein Array geleert, bzw. "asd" eingetragen um zu schauen ob sich da was tut. Die bisher angezeigten (die alleinstehenden) Gesellschaftslogos werden nach wie vor angezeigt, allerdings nichts neues. -,-
  • Die Funktion wird bei mir folgendermaßen aufgerufen:

    Quellcode

    1. $logo=$domresp->createElement("img");
    2. $logo->setAttribute("src",load_logo($gesellschaft,LOGO_BIG));
    3. $logo->setAttribute("height","60px");
    4. //$logo->setAttribute("style","float:right;margin-left:100px;");
    5. $logo->setAttribute("id","logo");


    Habe die Funktion übrigens auf folgenden Status zurückgesetzt: (damit wir jetzt nicht durcheinander kommen)

    Quellcode

    1. <?php
    2. /**
    3. *@author VMK AG i. G., Flavius Constantin Borlovan
    4. *@date 16. August 2007
    5. *
    6. *Copyright 2007 by VMK AG i. G. Flavius Constantin Borlovan Die Bearbeitung und Änderung dieses Quelltextes sind erlaubt. Der Weiterverkauf ist verboten.
    7. *Disclaimer: DIESE SOFTWARE WIRD OHNE JEGLICHE SPEZIELLE ODER IMPLIZIERTE GARANTIEN ZUR VERFÃœGUNG GESTELLT.
    8. */
    9. define(LOGO_BIG, 1);
    10. define(LOGO_SMALL, 0);
    11. function load_logo($logo_name, $logo_art) {
    12. //$logo_name in kleinbuchstaben umwandeln
    13. //strtolower($logo_name);
    14. //Array mit Gesellschaftsnamen, welche bereits ein Logo haben
    15. $namen = array(
    16. "wgv",
    17. "axa",
    18. "rhion",
    19. "dbv-winterthur",
    20. "inter",
    21. "gothaer",
    22. "interrisk",
    23. "vhv",
    24. "nationalesuisse",
    25. "helvetia",
    26. "patria",
    27. "arag",
    28. "badische",
    29. "condor",
    30. "devk",
    31. "aspecta",
    32. "allianz",
    33. "deurag"
    34. );
    35. //Überprüfen ob groß / klein
    36. if($logo_art == LOGO_BIG) {
    37. $pfad = "./img/gesellschaften/";
    38. //$height = "60";
    39. } else {
    40. $pfad = "./img/gesellschaften/thumbs/";
    41. }
    42. $name_logo=$logo_name;
    43. //Überprüfen ob $logo_name in $namen vorhanden
    44. foreach($namen as $name){
    45. if(stristr($name, $logo_name) !== FALSE) {
    46. $name_logo = $name;
    47. break;
    48. }
    49. }
    50. /*if($name_logo==""){
    51. $name_logo = "nopic";
    52. }*/
    53. //Logo definieren
    54. $logo = $pfad.$name_logo.".gif";
    55. //Ausgabe
    56. return $logo;
    57. }
    58. ?>
    Alles anzeigen
  • Das hier, meinst Du?

    Quellcode

    1. $url=str_replace(" ","%20",$url);
    2. $arr=parse_url($url);
    3. $method=$_SERVER['REQUEST_METHOD'];
    4. $webrequest=new WebRequest($arr['host'],$arr['scheme'],120,$referer);
    5. $webrequest->connect();
    6. $webrequest->setPath($arr['path']);
    7. $response=$webrequest->makeRequest("get",$arr['query']);
    8. $response=preg_replace("/[^\<]*/","",$response,1);
    9. $response=str_replace('/vers/images','img',$response);
    10. parse_str($arr['query'],$query);
    11. $gesellschaft=$query['gesellschaft'];
    Alles anzeigen
  • Ach, DEURAG Deutsche Rechtsschutzversicherung AG ist der String.

    CookIe schrieb:

    $logo_name (bzw. ein Wort aus der kompletten Variable)

    So habe ich es auch verstanden und so hast du es auch programmiert.
    Was du willst, ist aber die Array Elemente von $namen im String $logo_name zu suchen.
    Also genau umgedreht:

    Quellcode

    1. stristr($logo_name,$name)
  • Ich habe gesehen, mir ist da ein Mini-Fehlehler, aber leider ein fataler unterlaufen. Und zwar habe ich in dem "STRISTR" die Variablen vertauscht. -,-

    Nach einigen Tröpfchen ..
    ist mir das eingefallen und habe es sofort verändert. Nun funktioniert das auch bei dem online Antragsformular, allerdings nur auf dem Server und nicht local. Aber es funzt ..

    Hier nun den kompletten Quellcode, mit dem es auch funktioniert. Ich werde aber noch so einige Änderungen vornehmen müssen, für das was ich noch vor habe. Trotzdem danke, ihr habt mir sehr weitergeholfen!

    Quellcode

    1. <?php
    2. /**
    3. *@author VMK AG i. G., Flavius Constantin Borlovan
    4. *@date 16. August 2007
    5. *
    6. *Copyright 2007 by VMK AG i. G. Flavius Constantin Borlovan Die Bearbeitung und Änderung dieses Quelltextes sind erlaubt. Der Weiterverkauf ist verboten.
    7. *Disclaimer: DIESE SOFTWARE WIRD OHNE JEGLICHE SPEZIELLE ODER IMPLIZIERTE GARANTIEN ZUR VERFÃœGUNG GESTELLT.
    8. */
    9. define(LOGO_BIG, 1);
    10. define(LOGO_SMALL, 0);
    11. function load_logo($logo_name, $logo_art) {
    12. //Array mit Gesellschaftsnamen, welche bereits ein Logo haben
    13. $namen = array(
    14. "wgv",
    15. "axa",
    16. "rhion",
    17. "dbv-winterthur",
    18. "inter",
    19. "gothaer",
    20. "interrisk",
    21. "vhv",
    22. "nationalesuisse",
    23. "helvetia",
    24. "patria",
    25. "arag",
    26. "badische",
    27. "condor",
    28. "devk",
    29. "aspecta",
    30. "allianz",
    31. "deurag"
    32. );
    33. //Überprüfen ob groß / klein
    34. if($logo_art == LOGO_BIG) {
    35. $pfad = "./img/gesellschaften/";
    36. //$height = "60";
    37. } else {
    38. $pfad = "./img/gesellschaften/thumbs/";
    39. }
    40. $name_logo="";
    41. //Überprüfen ob $logo_name in $namen vorhanden
    42. foreach($namen as $name){
    43. if(strstr($logo_name, $name) !== FALSE) {
    44. $name_logo = $name;
    45. break;
    46. }
    47. }
    48. if($name_logo==""){
    49. $name_logo = "nopic";
    50. }
    51. //Logo definieren
    52. $logo = $pfad.$name_logo.".gif";
    53. //Ausgabe
    54. return $logo;
    55. }
    56. ?>
    Alles anzeigen



    //Edit:
    Bin anscheinend beim Schreiben eingeschlafen, oder ich werde alt. :(
    d0nut war schneller .. :P

    aber danke! :)