• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Groß- und Kleinschreibung: Suche

JulianMark

Neues Mitglied
Kann mir jemand einstellen, dass die Suche Groß- und Kleinschreibung ignoriert?

Code:
<form name="form1" method="post" action="search.php" style="background:url(images/Suche.png) no-repeat;">
<input type="text" onclick="JavaScript:this.value=''" value="" name="search" class="search" style="margin-left:10px; margin-right:5px;"></form>

Code:
<?php
$dateityp = ".php";
if(empty($search)) {$search=$_POST[search];}
if(strlen($search) < "3")
{echo "Geben Sie einen Suchbegriff von mindestens drei Buchstaben ein.";exit;}
$found = "0";
$verz = opendir('.');
while($file = readdir($verz))
{
if($file != "." && $file != ".." &&  !is_dir($file))
{
$filetype = stristr($file, $dateityp);
if(!empty($filetype))
{
$string = file_get_contents($file);
$string = html_entity_decode($string);
$test = substr_count($string, $search);
if(!empty($test))
{
$string = ereg_replace("\n", "", $string);
$string = strip_tags($string);

$pieces = explode($search, $string);
$piece1 = substr($pieces[0], -50);
$piece1 = explode(" ", $piece1);
array_shift($piece1);
$piece1 = implode(" ", $piece1);
$piece2 = substr($pieces[1], 0, 100);
$piece2 = explode(" ", $piece2);
array_pop($piece2);
$piece2 = implode(" ", $piece2);
$rest = "$piece1<b>$search</b>$piece2";
$array .= "<b>$test</b> mal in Datei: <a href=\"$file\" target=\"_self\" class=\"link\">$file</a> <br>...$rest... <br> <br><br>\n";
$found ++;
}}}}
closedir($verz);
if($found != "0")
{
echo "Anzahl der gefundenen Seiten: <strong>$found</strong> <br /> Sortiert nach der H&auml;ufigkeit des Vorkommens.<br><br>";
$array = explode("\n", $array);
natsort($array);
reset($array);
$array = array_reverse($array);
while(list($line_num, $line) = each($array))
{
$ausgabe .= "$line\n";
}
print $ausgabe;
}
if($found == "0")
{ echo "Es wurden keine &uuml;bereinstimmungen mit dem eingegebenen Suchbegriff gefunden.";}
?>
 
Jetzt kommt ma wieder auf den Boden zurück du Zeppelin... :evil:

Also ich (und meine Firefox Suche) können diese Funktion nicht in deinem Code entdecken... Also:
umleitung.gif
 
Ich entdecke da auch nichts. Das Script ist insgesamt... nicht besonders schön. Habe mal ein bisschen dran rumgebaut, aber eigentlich sollte man das ganz neu schreiben.

PHP:
<?php

// Zum Testen
$_POST['search'] = 'TEST';

$search = (isset($_POST['search'])) ? strtolower(trim($_POST['search'])) : '';

if (strlen($search) < 3) {
    die("Geben Sie einen Suchbegriff von mindestens drei Buchstaben ein.");
}

$found = 0;
$array = array();

foreach (glob('./*.php') as $file) {
    $string = file_get_contents($file);
    $string = strtolower(html_entity_decode($string));
    $test   = substr_count($string, $search);

    if ($test > 0) {
        //$string = str_replace("\n", '', $string);
        //$string = strip_tags($string);

        $pieces = explode($search, $string);
        $i = 0;

        $rest = '';

        while ($i < $test) {
            $piece1 = substr($pieces[$i], -50);

            $piece1 = explode(' ', $piece1);
            array_shift($piece1);
            $piece1 = implode(' ', $piece1);

            $piece2 = substr($pieces[$i + 1], 0, 100);

            $piece2 = explode(' ', $piece2);
            array_pop($piece2);
            $piece2 = implode(' ', $piece2);

            $rest .= '...' . htmlspecialchars($piece1)
                   . '<b>' . htmlspecialchars($search) . '</b>'
                   . htmlspecialchars($piece2) . '...<br />';

            $i++;
        }

        $array[] = "<b>$test</b> mal in Datei: <a href=\"$file\" target=\"_self\" class=\"link\">$file</a> <br>"
                 . "$rest<br> <br><br>\n";
        $found ++;
    }
}

if ($found > 0) {
    echo "Anzahl der gefundenen Seiten: <strong>$found</strong> <br /> Sortiert nach der H&auml;ufigkeit des Vorkommens.<br><br>";

    natsort($array);
    reset($array);
    $array = array_reverse($array);
    while(list($line_num, $line) = each($array)) {
        $ausgabe .= "$line\n";
    }
    echo $ausgabe;
} else {
    echo "Es wurden keine &uuml;bereinstimmungen mit dem eingegebenen Suchbegriff gefunden.";
}
 
Ich entdecke da auch nichts. Das Script ist insgesamt... nicht besonders schön. Habe mal ein bisschen dran rumgebaut, aber eigentlich sollte man das ganz neu schreiben.

Deiner ist nicht besonders schön. Der geht nämlich garnicht.

PHP:
<?php include '1.php'; ?> 

$_POST['search'] = 'TEST'; 

$search = (isset($_POST['search'])) ? strtolower(trim($_POST['search'])) : ''; 

if (strlen($search) < 3) { 
    die("Geben Sie einen Suchbegriff von mindestens drei Buchstaben ein."); 
} 

$found = 0; 
$array = array(); 

foreach (glob('./*.php') as $file) { 
    $string = file_get_contents($file); 
    $string = strtolower(html_entity_decode($string)); 
    $test   = substr_count($string, $search); 

    if ($test > 0) { 
        //$string = str_replace("\n", '', $string); 
        //$string = strip_tags($string); 

        $pieces = explode($search, $string); 
        $i = 0; 

        $rest = ''; 

        while ($i < $test) { 
            $piece1 = substr($pieces[$i], -50); 

            $piece1 = explode(' ', $piece1); 
            array_shift($piece1); 
            $piece1 = implode(' ', $piece1); 

            $piece2 = substr($pieces[$i + 1], 0, 100); 

            $piece2 = explode(' ', $piece2); 
            array_pop($piece2); 
            $piece2 = implode(' ', $piece2); 

            $rest .= '...' . htmlspecialchars($piece1) 
                   . '<b>' . htmlspecialchars($search) . '</b>' 
                   . htmlspecialchars($piece2) . '...<br />'; 

            $i++; 
        } 

        $array[] = "<b>$test</b> mal in Datei: <a href=\"$file\" target=\"_self\" class=\"link\">$file</a> <br>" 
                 . "$rest<br> <br><br>\n"; 
        $found ++; 
    } 
} 

if ($found > 0) { 
    echo "Anzahl der gefundenen Seiten: <strong>$found</strong> <br /> Sortiert nach der H&auml;ufigkeit des Vorkommens.<br><br>"; 

    natsort($array); 
    reset($array); 
    $array = array_reverse($array); 
    while(list($line_num, $line) = each($array)) { 
        $ausgabe .= "$line\n"; 
    } 
    echo $ausgabe; 
} else { 
    echo "Es wurden keine &uuml;bereinstimmungen mit dem eingegebenen Suchbegriff gefunden."; 
}

<?php include '2.php'; ?>
 
Kopier meinen Code mal 1:1 in eine neue PHP-Datei in einem Verzeichnis mit weiteren PHP-Dateien und setze den Suchbegriff ($_POST['search']) auf ein Wort, das in mindestens einer der anderen Dateien auftaucht und rufe die neue PHP-Datei im Browser auf. Das müsste eigentlich klappen.
 
Kopier meinen Code mal 1:1 in eine neue PHP-Datei in einem Verzeichnis mit weiteren PHP-Dateien und setze den Suchbegriff ($_POST['search']) auf ein Wort, das in mindestens einer der anderen Dateien auftaucht und rufe die neue PHP-Datei im Browser auf. Das müsste eigentlich klappen.

Das ist mir zu kompliziert. Meiner ist einfacher und funktioniert auch prima bis auf die Groß- und Kleinschreiung. Da lasse ich's lieber so, es sei denn, jemand hat einen noch besseren als den, den ich am Anfang gepostet habe.
 
Du hast dasselbe geschrieben.
Ich möchte jetzt einen Code, der Groß- und Kleinschreibung nicht beachtet,
der ansonsten so wie meiner funktioniert. Ist das wirklich so schwer? xD
 
:?

Den habe ich dir im Prinzip geliefert. Ich habe den Code zwar umgeschrieben (und zwei meiner Meinung nach unlogische Zeilen auskommentiert), aber er sollte noch in etwa wie vorher einzubinden sein und funktionieren. Die Integration und etwaige Anpassungen müsstest du hinbekommen, wenn du das ursprüngliche Script geschrieben hast.

Edit: Aber ehrlich gesagt...

Man O Meter.
Das steht schon in meinem Code drin Herr Oberschlau.

Deiner ist nicht besonders schön. Der geht nämlich garnicht.

Das ist mir zu kompliziert.

Du hast dasselbe geschrieben.
Ich möchte jetzt einen Code, der Groß- und Kleinschreibung nicht beachtet,
der ansonsten so wie meiner funktioniert. Ist das wirklich so schwer? xD

Ich klinke mich hier aus.

PS: Hm, ja, eins noch: Der stristr-Vorschlag von DD-Stylz ist vermutlich effizienter als strtolower. Müsste man testen, falls es so sehr drauf ankommt.
 
Zuletzt bearbeitet:
Wenn du's nicht kannst, was kann ich dafür? Wenn du's so kompliziert machst. Einen neuen Extracode, etwas, was man irgendwo reinschreiben muss in jedes Dokument, damit der das durchsucht. Ist doch total unsinnig.
 
dein ton lässt zu wünschen übrig !!

es sollte reichen, wenn du eine zeile tauscht:
PHP:
$pieces = explode(strtolower($search), strtolower($string));

einrückungen etc. fehlen das kann ja kein mensch lesen, beschwer dich also nicht, wenn da rumgepfuscht wird, ich habe auch keine lust schlechten code (und er ist schlecht) erst mal in leserliche form zu bringen.
 
dein ton lässt zu wünschen übrig !!

es sollte reichen, wenn du eine zeile tauschst:
PHP:
$pieces = explode(strtolower($search), strtolower($string));

einrückungen etc. fehlen das kann ja kein mensch lesen, beschwer dich also nicht, wenn da rumgepfuscht wird, ich habe auch keine lust schlechten code (und er ist schlecht) erst mal in leserliche form zu bringen.

Tut mir leid.
Soll ich die Zeile einfach dazuschreiben oder wie?
PHP:
$pieces = explode(strtolower($search), strtolower($string));
 
Zurück
Oben