Jag undrar ifall det är möjligt att skapa en sökmotor som söker efter filer i en speciell mapp på en server!? (Lite svårt att förklara.)
Mappen innehåller över 130.000 filer, och jag skulle vilja skapa en sökmotor på en hemsida som söker efter en speciell fil genom att skriva in hela eller delar av filnamnet etc.
Är tacksam ifall någon kan tipsa om ett färdigt script som fungerar enligt ovan. :r
$word = "ordDuVillSökaPå";
$dir = scandir("Mappen/du/vill/leta/i");
for($i = 0; $i < count($dir); ++$i)
if(strstr($dir[$i], $word)) //Kör stristr() om du vill ignorera om det är en versal/gemen
echo $dir[$i];
$word = "ordDuVillSökaPå";
$dir = scandir("Mappen/du/vill/leta/i");
for($i = 0; $i < count($dir); ++$i)
if(strstr($dir[$i], $word)) //Kör stristr() om du vill ignorera om det är en versal/gemen
echo $dir[$i];
Tänkte att när filerna var sorterade skulle det ju gå att använda en binär sökning. Men det gäller ju bara om man vill söka på början av filnamnen.
Jo, men om man vill söka på andra delar av filnamnet så funkar det ju inte.
Dock, den största prestandaförlusten man gör är att det tar mer kraft att sortera och sen binärsöka, än att göra en loop som går igenom arrayen element för element.
Och, eftersom du i din search() inte använder dig av att arrayen är sorterad, så är det mycket onödigt att köra [r]sort(). :)
Katalognamnet man skriver in blir relativt skriptets plats.
Tack så hemskt mycket för koden, men den verkar inte fungera. :r
1. Scriptet ska hämta information + fil från en annan dator
(Vill att scriptet (via internet) ska söka igenom en speciell mapp på min kompis dator.)
2. Man ska kunna ladda ner filen
För att koppla upp till en annan server krävs en massa andra funktioner som inte jag har någon vidare koll på (kanske fsockopen() är en bit på väg) Någon annan kanske vet hur man gör.
Att kunna ladda ner filen är inget problem egentligen. Bara att länka till den med hjälp av sökvägen till katalogen och filnamnet (när man väl har fått det att fungera).
Ungefär att ändra den här biten:
if (!empty($hits))
{
echo "<ul>";
foreach($hits as $i)
{
echo "<li>".$i."</li>";
}
echo "</ul>";
}
såhär:
if (!empty($hits))
{
echo "<ul>";
foreach($hits as $i)
{
echo "<li><a href=\".$_POST['directory'].$i."\">".$i."</li>";
}
echo "</ul>";
}
Pimme, det har du rätt i. Följde bara ditt första exempel
:)