Goede avond.

Ik ben nog niet zo lang bezig met php dus hopelik kunnen jullie mij helpen.
Ik zou een zoekveld willen maken dat een needle kan zoeken in meerdere files om dan vervolgens de files te tonen waar de needle is gevonden.
Bedankt!

Hieronder de code die ik tot nu toe heb..

<?php
$needle = $_POST['needle'];

foreach (glob("files/*.txt") as $file)
{
$file_handle = fopen($file, "r");

while (!feof($file_handle))
{
$haystack = fgets($file_handle);
}
fclose($file_handle);


}

if(stristr($haystack, $needle) === FALSE)
{
echo $needle.' not found in string';
}
else
{
echo 'found'; // --> show directories?
}
?>
Waar loop je op vast?
voor snel zoeken kun je het beste de files in één keer inlezen met file_get_contents()

<?php

$needle = $_POST['needle'];

foreach (glob("files/*.txt") as $filename)
{
$content = file_get_contents($filename);

if($content !== false)
{
$positie = stripos($content, $needle);
if($positie !== false)
{
echo 'gevonden in: ' . $filename . ' op positie ' . $positie . '<br>';
}
}
else
{
echo $filename . ' kon niet gelezen worden.<br>';
}
}

?>
Bedankt Frank!
Dit heeft me al een heel eind verder geholpen!

[size=xsmall]Toevoeging op 12/08/2014 19:14:47:[/size]

Het volgende probleem is opgetreden... Heeft iemand een idee hoe je .pdf en .doc(x) documenten kan uitlezen zoals file_get_contents..??

<?php

foreach (glob("files/*.{txt,doc,docx,pdf}", GLOB_BRACE) as $filename)
{

$ext = pathinfo($filename);

if($ext['extension'] === 'pdf')
{
...
}

if($ext['extension'] === 'doc' || $ext['extension'] === 'docx')
{

...
}

Reageren