Script umändern

  • PHP

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von CatchTheBird.

    Script umändern

    Ich habe hier ein kleines suchskript

    PHP-Quellcode

    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>zingoo</title> <p><center> <img src="faustoo.jpg" alt="faustoo"></center></p> <style> html { background: with; } .suchform { width: 400px; margin: auto;
    2. } .suchform input { float: left; }
    3. .suchergebnis { clear:both; margin: auto; width: 400px; margin: auto;
    4. } .suchform input.big { width: 250px; } a.nav{ padding: 3px 10px; } span.nav{ padding: 3px 10px; font-weight: bold; } </style> </head></head><body>
    5. <?php
    6. $suchbegriff = '';
    7. if(isset($_POST['suchbegriff'])){ $suchbegriff = $_POST['suchbegriff'];}else if (isset($_GET['su'])){ $suchbegriff = $_GET['su'];}?>
    8. <div class="suchform"><form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"><input class="big" type="text" name="suchbegriff" value="<?php echo $suchbegriff; ?>" ><input type="submit" value="suchen" ></form></div><div class="suchergebnis"><?php
    9. if($suchbegriff>''){ if(isset($_GET['seite'])){ $seite = $_GET['seite'];}else{ $seite = 1;} $gefunden = array();
    10. $aktuelle_nummer = 0;
    11. $nicht_durchsuchen = array(); // Hier jetzt die Dateien definieren $nicht_durchsuchen[] = 'bild.html';$nicht_durchsuchen[] = 'index.html'; // die er nicht durchsuchen soll // je Datei ein Eintrag
    12. // zuerst mal Durchsuchen und dem array zusortieren
    13. foreach (glob("*.html") as $dateiname) {
    14. if(in_array($dateiname, $nicht_durchsuchen)) continue; // Wenn die Datei im angebenen array nicht_durchsuchen ist, // zur nchsten Datei gehen $text = file_get_contents($dateiname); if (stristr($text, $suchbegriff)) { $dateiname_ohne_html = str_replace('.html', '',$dateiname); $gefunden[$aktuelle_nummer] = '<a href="'.$dateiname.'">'.$dateiname_ohne_html.'</a><br />'; $lines = file($dateiname); // Wenn es eine 2. Zeile in dieser Datei gibt, dann den Inhalt dranhngen if(isset($lines[2])) { $gefunden[$aktuelle_nummer] .= htmlentities($lines[2]) ;
    15. } // Wenn es eine 3. Zeile in dieser Datei gibt, dann den Inhalt dranhngen if(isset($lines[3])){ $gefunden[$aktuelle_nummer] .= htmlentities($lines[3]); } if(isset($lines[4])){ $gefunden[$aktuelle_nummer] .= $lines[4] ; } if(isset($lines[5])){ $gefunden[$aktuelle_nummer] .= $lines[5] ; } $aktuelle_nummer++;
    16. } }
    17. $anzahl_pro_seite = 10; $start = ($seite - 1) * $anzahl_pro_seite; $ende = $seite * $anzahl_pro_seite; $anzahl_treffer = count($gefunden); echo '<p>'.$anzahl_treffer.' Ergebnisse gefunden</p>'; if($anzahl_treffer < $ende) $ende = $anzahl_treffer; for ($i = $start; $i < $ende; $i++) { echo $gefunden[$i]. "<br /> <br />" ; } $anzahl_seiten = ceil($anzahl_treffer/$anzahl_pro_seite); if($anzahl_seiten>1) { for($j=1;$j < $anzahl_seiten+1; $j++) { if($j == $seite) { echo ' <span class="nav">'.$j.'</span> '; } else { echo ' <a class="nav" href="'.$_SERVER['PHP_SELF'].'?su='.$suchbegriff.'&seite='.$j.' ">'.$j.'</a> '; } } } }?><html><p><small><b>zingoo</b> powered by <a href="/" target="_blank">www.zingoo.lima-city.de</a></small></p><a href="AGB.txt"><small>AGB</small></a></html></br>


    Dieser Code durchsucht die Dateien nach den im suchfeld eingegeben Texten ab. Beispiel:
    Eingegeben: Hallo
    Dateiname: was
    Inhalt: Hallo wie geht es dir

    Datei *was* wird angezeigt. Jetzt möchte ich aber das es nur nach Dateinamen geht. Beispiel:
    Eingegeben: Hallo
    Dateiname: Hallo wie geht es dir
    Inhalt: blabla

    Datei *Hallo wie geht es dir* wird angezeigt. Was muss ich da an dem Code umändern?

    Danke schonmal
    Mit freundlichen Grüßen
    Catchthebird

    Verschoben aus dem Off-Topic nach Weitere Programmiersprachen von Chrisber.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Chrisber“ ()

    So als kleiner Tipp benutz bitte Absätzte ... bis ich den Code verständlich angeordnet habe vergeht mir die ganze Lust am anschauen des Codes.
    Im Edit kommt gleich (je nach dem wie lange ich jetzt noch brauche um den Code zu durchforsten) eine Lösungsmöglichkeit
    Gruß K4RTOFF3L

    Das Problem zu erkennen ist wichtiger, als die Lösung zu erkennen, denn die genaue Darstellung des Problems führt zur Lösung. - Albert Einstein
    Ihm scheint die Lust, sich den Code anzusehen, vergangen zu sein. Benutze die Quellcode-Ansicht und füge den Code erneut ein.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    So. Ich hatte gestern leider einen Fehler in einem meiner Scripts bemerkt, deswegen ist dein Problem nach hinten gerutscht.

    So erst mal ein für mich halbwegs ordentlicher Code sieht so aus:

    PHP-Quellcode

    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    2. <head>
    3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    4. <title>zingoo</title>
    5. <p>
    6. <center>
    7. <img src="faustoo.jpg" alt="faustoo">
    8. </center>
    9. </p>
    10. <style>
    11. html {
    12. background: with;
    13. }
    14. .suchform {
    15. width: 400px; margin: auto;
    16. }
    17. .suchform input {
    18. float: left;
    19. }
    20. .suchergebnis {
    21. clear:both; margin: auto;
    22. width: 400px; margin: auto;
    23. }
    24. .suchform input.big {
    25. width: 250px;
    26. }
    27. a.nav{
    28. padding: 3px 10px;
    29. }
    30. span.nav{
    31. padding: 3px 10px;
    32. font-weight: bold;
    33. }
    34. </style>
    35. </head>
    36. <body>
    37. <?php
    38. $suchbegriff = '';
    39. if(isset($_POST['suchbegriff'])){
    40. $suchbegriff = $_POST['suchbegriff'];
    41. } else if (isset($_GET['su'])){
    42. $suchbegriff = $_GET['su'];}
    43. ?>
    44. <div class="suchform">
    45. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    46. <input class="big" type="text" name="suchbegriff" value="<?php echo $suchbegriff; ?>" >
    47. <input type="submit" value="suchen" >
    48. </form>
    49. </div>
    50. <div class="suchergebnis">
    51. <?php
    52. if($suchbegriff>''){
    53. if(isset($_GET['seite'])){ $seite = $_GET['seite'];}else{ $seite = 1;} $gefunden = array();
    54. $aktuelle_nummer = 0;
    55. $nicht_durchsuchen = array(); // Hier jetzt die Dateien definieren $nicht_durchsuchen[] = 'bild.html';$nicht_durchsuchen[] = 'index.html'; // die er nicht durchsuchen soll // je Datei ein Eintrag
    56. // zuerst mal Durchsuchen und dem array zusortieren
    57. foreach (glob("*.html") as $dateiname) {
    58. if(in_array($dateiname, $nicht_durchsuchen)) continue;
    59. }
    60. }
    61. $anzahl_pro_seite = 10;
    62. $start = ($seite - 1) * $anzahl_pro_seite;
    63. $ende = $seite * $anzahl_pro_seite;
    64. $anzahl_treffer = count($gefunden);
    65. echo '<p>'.$anzahl_treffer.' Ergebnisse gefunden</p>';
    66. if($anzahl_treffer < $ende)
    67. $ende = $anzahl_treffer;
    68. for ($i = $start; $i < $ende; $i++){
    69. echo $gefunden[$i]. "<br /> <br />" ;
    70. }
    71. $anzahl_seiten = ceil($anzahl_treffer/$anzahl_pro_seite);
    72. if($anzahl_seiten>1) {
    73. for($j=1;$j < $anzahl_seiten+1; $j++){
    74. if($j == $seite){
    75. echo ' <span class="nav">'.$j.'</span> ';
    76. } else {
    77. echo ' <a class="nav" href="'.$_SERVER['PHP_SELF'].'?su='.$suchbegriff.'&seite='.$j.' ">'.$j.'</a> ';
    78. }
    79. }
    80. } ?><html><p><small><b>zingoo</b> powered by <a href="/" target="_blank">www.zingoo.lima-city.de</a></small></p><a href="AGB.txt"><small>AGB</small></a></html></br>


    ansich musst du dir nur die Dateien in ein Array holen mit z.b "readdir".
    Kleine Hilfe zu "readdir" *klick*

    Dann musst du nur noch die Dateinamen aussortieren...


    PS: der Code funktionierte nicht ohne Probleme... Es gab einige "}" zu viel und der Code ist an sich unsauber
    Gruß K4RTOFF3L

    Das Problem zu erkennen ist wichtiger, als die Lösung zu erkennen, denn die genaue Darstellung des Problems führt zur Lösung. - Albert Einstein
    Ich kann dir nur sagen, dass ich nicht verändert habe ... ich wollte dir nur zeigen wie man ein Code formatiert... und bitte schreib nächstes Mal den ganzen code auf oder teste ob es funktioniert ... es hab 3-4 } klammern gehabt
    Gruß K4RTOFF3L

    Das Problem zu erkennen ist wichtiger, als die Lösung zu erkennen, denn die genaue Darstellung des Problems führt zur Lösung. - Albert Einstein
    das ist schlecht.

    hm mein gehirn spackt gerade. kann mir jemand weiterhelfen wir ich das umsetze?
    alle dateien zeige ich mit:

    PHP-Quellcode

    1. <?php
    2. $alledateien = scandir('bla');
    3. foreach ($alledateien as $datei) {
    4. echo $datei."<br />";
    5. };
    6. ?>


    jetzt muss ich aber irgendwie einbauen, dass es nur die anzeigt die den suchbegriff enthalten.
    kann mir da jemand helfen? wo genau muss ich das in dem code dann einsetzen?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „CatchTheBird“ ()