ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
1023
1023
EMPFEHLEN
-
Sorry das es so lange gedauert hat. Da ich krank war und kaum kraft hatte um was zu tippen
Aber ich glaub meine Lösung ist lächerlich 

PHP-Code:/*
Kommentierung @_@
Beispiel:
Zeile 12-24:
29: $qry wird escaped.
30: Ein "+" im Query wird gelöscht.
34-41: Hier wird die Liste einmal durchlaufen und die
Muster werden gesammelt.
Wie z.B
$arr0 = "Geo",
$arr1 = "ton",
$arr2 = "George Washington",
$arr3 = "GW" # Alle kleinbuchstaben werden entfernt
Zeile 26-33:
Anstatt einer if-Abfrage hab ich die
"Drei Operator Schreibweise" benutzt
(ich hoffe, dass es so genannt wird :D)
Hier werden natürlich alle Präsidenten durchlaufen
und bei einer Übereinstimmung
wird der Gefundene ausgegeben.
*/
PHP-Code:<?php
$gf = file('presidents.txt');
if(isset($_POST['qry'])) {
$arr0 = array();
$arr1 = array();
$arr2 = array();
$arr3 = array();
$qry = htmlspecialchars($_POST['qry']);
$qry = preg_replace("~[\x2b]~",'',$qry);
// Muster sammeln
for($i = 0; $i < count($gf); ++$i) {
$arr0[] = substr($gf[$i],0,3);
$arr1[] = substr($gf[$i],-5,3); // Unsicher.........................
$arr2[] = $gf[$i];
$arr3[] = preg_replace("~[^\x41-\x5a]~",'', $gf[$i]);
}
for($i = 0; $i < count($gf); ++$i) {
echo preg_match("~".$arr0[$i]."~", $qry) || preg_match("~".$arr1[$i]."~", $qry)
|| preg_match("~".$qry."~", $arr2[$i]) || $qry === $arr0[$i]
|| $qry === $arr1[$i] || $qry == $arr3[$i]
?'Match found : '. $arr2[$i].'<br />' : '';
}
}
?>
<html>
<head>
<title>Tutorials.de QUIZ #1 (PHP)</title>
</head>
<body>
<form method="post" action="index.php" accept-charset="utf-8" >
<input name="qry" value="Suchbegriff" OnClick="this.value=''" />
</form>
</body>
</html>Geändert von KD3 (22.09.08 um 15:51 Uhr)
-
Ich hab noch nicht nachvollzogen, was es tut, aber ich weiß, dass es nicht das tut, was es tun sollte =)
-
22.09.08 01:47 #3
- Registriert seit
- Dec 2007
- Ort
- Bremen
- Beiträge
- 3.418
Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.
-
Unschoen finde ich hier dass Du eine Funktion getsig() und eine Funktion getsig2() hast. Die Namensgebung ist meiner Meinung nach nicht gerade gut, was leider auch bei Variablennamen wie z.B. $gf und $foo.
Dies ist zwar nur ein kleines Stueckchen Code, dennoch finde ich es wichtig immer darauf zu achten vernuenftige Namen fuer Funktionen und Variablen zu vergeben; in einem grossen Projekt ist dies vor allem dann wichtig wenn man es nach einem halben Jahr mal bearbeiten will, wenn man mit mehreren daran arbeitet, oder wenn mal jemand anders den eigenen Code nachvollziehen soll.PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
@OnlyFoo
JFK,GW, Geo usw. gehen und werden erfasst. Wenn du das mit dem Highlighting meinst dann hast du schon recht.
@kuddeldaddeldu
Die Funktionen waren sinnlos. Ich habe das Script jetzt viel verständlicher gemacht. Ich hab auch jetzt einbisschen Kommentiert
@Dennis Wronka
Meine Namensgebungen sind sehr schlimm, ich weiß
. z.B sollte gf=getfile sein 
Ich hab z.B ein großes CMS gecodet worin nur Variablennamen als - ich will mal sagen "Mnemonic's" - existieren. Ich denke mal wenn ich die veröffentlichen würde, würde jeder nach paar Minuten den Ordner worin sich die Dateien befinden, direkt in den Papierkorb bzw. /dev/null verschieben.
-
-
22.09.08 20:11 #7
- Registriert seit
- Dec 2007
- Ort
- Bremen
- Beiträge
- 3.418
Hi,
ich habe das mal ausprobiert und näher angeschaut. Leider muss ich sagen , dass die Lösung ziemlich an der Aufgabe vorbei ist.
Matches, bei denen das Suchwort zwar vorkommt, aber nicht an einem Stück (was ja Kern der unscharfen Suche ist), werden nur in dem ganz speziellen Fall gefunden, in dem das Suchmuster nur aus Grossbuchstaben besteht und im String auch nur diese Grossbuchstaben so vorkommen.
Dafür ist nach Deiner Lösung ein Match, wenn die ersten oder die letzten 3 Zeichen des input-Strings im Suchmuster vorkommen (welcher Gedankengang steckte denn da hinter?). Das führt zu (theoretisch unendlich) vielen falschen Matches. So liefert die Abfrage "George Bush" auch Herrn Washington, die Abfragen "Geobla" und "blaGeo" liefern ebenfalls alle drei Georges.
Ansonsten fällt auf, dass Du grundsätzlich die regexp-Engine bemühst, wo auch die einfachen (performanteren) String-Funktionen gereicht hätten.
Den Einsatz von htmlspecialchars (an der Stelle) verstehe ich gar nicht, zumal Vergleiche eines maskierten Strings mit einem unmaskierten String (aus der Datei) fehlschlagen würden, wenn dort die entsprechenden Sonderzeichen vorkommen. Du wolltest sicherlich die Ausgabe maskieren.
LGDa es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.
Ähnliche Themen
-
Quiz?
Von MeisterLampion im Forum Office-AnwendungenAntworten: 12Letzter Beitrag: 03.11.06, 15:48 -
Quiz: Was bin ich?
Von MrTwister im Forum WerkstattAntworten: 3Letzter Beitrag: 05.04.06, 19:14 -
Quiz
Von JannyR im Forum PHPAntworten: 2Letzter Beitrag: 21.05.05, 15:58 -
Quiz
Von alkaline im Forum PHPAntworten: 0Letzter Beitrag: 27.09.04, 10:16 -
php Quiz
Von Sim im Forum PHPAntworten: 0Letzter Beitrag: 09.05.04, 12:43






Login




