Mark
Cinema4D
Hi Ihr Lieben!
Args, ich habe mich hierher total verlaufen: als Pixelschubser hätte ich mich sicher nicht an Php heran wagen dürfen, aber Cinema4Ds Coffee oder XPresso wären doch ein wenig überfordert gewesen
... somit mein kleiner Versuch:
Gerade den "Zusatz" hatte ich versucht mit einer RegExp hinzubekommen, bin aber kläglich gescheitert (auch schon bei der ersten ReqExp dürfte es einigen den Magen umdrehen
), deshalb diese Buchstabe pro Buchstabe-Markierung (die dann erst im nachhinein aufgeräumt wird)...
Ich hoffe, das Teil macht zumindest was es soll und ich bin schon tierisch gespannt, mit welchen wunderbaren Algorithmen die Mitbewerber so alles auftrumpfen!
Liebe Grüße,
Mark.
Args, ich habe mich hierher total verlaufen: als Pixelschubser hätte ich mich sicher nicht an Php heran wagen dürfen, aber Cinema4Ds Coffee oder XPresso wären doch ein wenig überfordert gewesen

PHP:
<?php
echo "tutorials.de Coding-Quiz #1 - Unscharfe Suche<br /><br />\n";
// Markierungs-Tags
define("M_START", "<b>");
define("M_ENDE", "</b>");
// Sucheingabe per Html-Form
$suche = $_GET['suche'];
echo '<form><input type="text" name="suche" value="' . $suche .'" /></form>' . "\n";
// Einlesen der Fundstücke
$praesidenten = file('presidents.txt');
$praesidenten = array_map('trim', $praesidenten);
// Leerzeichen entfernen & Kleinschreibung
$suche = str_replace(' ', '', $suche);
$suche = strtolower($suche);
# Kein Suchbegriff
if (!$suche) {
print 'Bitte Suchbegriff eingeben.';
# Unscharfe Suche
} else {
$count = 0;
// Durchlaufen aller Präsidenten
foreach($praesidenten as $praesident) {
// Treffer
if (preg_match_all('/.*?'.implode('.*?', str_split($suche)).'.*?/i', $praesident, $treffer)) {
$position = 0;
$Apraesident = str_split($praesident);
// Markiere die Suchbuchstaben
foreach(str_split($suche) as $buchstabe) {
$position = stripos($praesident, $buchstabe, $position);
$Apraesident[$position] = '[Mstart]' . $Apraesident[$position] . '[Mende]';
$position++;
}
// Doppelte MTags entfernen
$markiert = preg_replace('/\[Mstart\]\[Mende\]/', '', implode('', $Apraesident));
// MTags ersetzen & Ausgabe
echo preg_replace(array('/\[Mstart\]/', '/\[Mende\]/'), array(M_START, M_ENDE), $markiert) . "<br />\n";
$count++;
}
}
echo ($count ? $count : 'Keine') . ' Treffer';
}
?>
Gerade den "Zusatz" hatte ich versucht mit einer RegExp hinzubekommen, bin aber kläglich gescheitert (auch schon bei der ersten ReqExp dürfte es einigen den Magen umdrehen

Ich hoffe, das Teil macht zumindest was es soll und ich bin schon tierisch gespannt, mit welchen wunderbaren Algorithmen die Mitbewerber so alles auftrumpfen!

Liebe Grüße,
Mark.