PHP-Code:
<?php set_time_limit ( 0 ); function searchWord ( $content , $q ) { foreach( explode ( ' ' , $q ) as $sq ) { if( strpos ( $content , strtolower ( $sq )) !== false || ( strpos ( $sq , '*' ) !== false && preg_match ( '/' . str_replace ( '\\*' , '.*' , preg_quote ( $sq , '/' )) . '/' , $content ))) { return true ; } } return false ; } function getResulst ( $directory = '.' , $recursive = true , $extensions = Array( 'html' , 'htm' , 'txt' , 'php' ), $files = Array()) { $dir = dir ( $directory ); while( $file = $dir -> read ()) { if( is_dir ( $dir -> path . '/' . $file )) { if( $recursive ) { $files = getResulst ( $dir -> path . '/' . $file , $recursive , $extensions , $files ); } } elseif( $file [ 0 ] != '.' && ( $ext = strrpos ( $file , '.' )) && in_array ( substr ( $file , $ext + 1 ), $extensions ) && is_readable ( $dir -> path . '/' . $file )) { // Datei durchsuchen $content = file_get_contents ( $dir -> path . '/' . $file ); if( searchWord ( $content , $_GET [ 'q' ])) { $files [] = $dir -> path . '/' . $file ; } } } $dir -> close (); return $files ; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xml:lang="de" lang="de" xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Suchmaschine</title> </head> <body> <h1>Suchmaschine</h1> <form action="<?php echo $_SERVER [ 'PHP_SELF' ]; ?> " method="get"> <p><input type="text" name="q" value="<?php echo htmlspecialchars ( $_GET [ 'q' ]); ?> " /> <input type="submit" value="Suche starten" /></p> </form><?php if(isset( $_GET [ 'q' ]) && $_GET [ 'q' ]) { $results = getResulst ( '.' , false ); $length = count ( $results ); if( $length ) { echo ' <p>' . $length . ' Ergebnisse.</p>' . "\n" ; echo " <hr />\n<ul>\n" ; foreach( $results as $result ) { echo ' <li><a href="' . $result . '">' . $result . '</a></li>' . "\n" ; } echo " </ul>\n" ; } else { echo ' <p>Es wurde leider nichts gefunden.</p>' ; } } ?> </body> </html>