Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prośba !
Forum PHP.pl > Forum > Gotowe rozwiązania
oggy
No wiec męcze sie z wyszukiwarką juz chyba ze 3 dni. Wszysko działa, tylko chciałbym zeby działało trochę inaczej. Chodzi oto ze po znalezieniu plików sa tworzone linki w taki sposób : <a href=./plik.htm>./plik.htm</a> , a ja potrzebuje aby wyglądały one w taki sposób : <a href=plik>Plik</a>. Mam nadzieje że znajdzie sie tu ktoś na tyle miły, aby nie odesłał mnie do manuala, lecz zrobił to oco proszę. Po niżej pliki źródłowe.

szukaj.htm
[xml:1:c03b204417]<FORM action=page/szukaj2.htm method=post target=_blank>
Szukaj:<INPUT name=szukane>
<INPUT type=submit value=Go!>
</FORM>[/xml:1:c03b204417]

szukaj2.htm
[php:1:c03b204417]<?php

include("f.php");

if(isset($szukane) && $szukane != '') {
$szukane = ereg_replace("[*.$/]", "", $szukane);
$szukane_slowa = split(" ", $szukane);
array_unshift($szukane_slowa, $szukane);
$ile_slow = count($szukane_slowa);
unset($szukane);

$pliki = drzewko(".");
$czytelne = czytelne($pliki);
unset($pliki);
sort($czytelne);

foreach($czytelne as $plik) {
$id_pliku = fopen($plik, "r");
$zawartosc = fread($id_pliku, filesize($plik));
for($i=0; $i < $ile_slow; $i++) {
if(ereg($szukane_slowa[$i], $zawartosc)) {
$trafienia[] = $folder . $plik;
}
}
fclose($id_pliku);
}

if(!isset($trafienia)) {
echo "Niestety nie znaleziono nic co by pasowało do twojego zapytania. Powrót";
} else {
$trafienia = array_unique($trafienia);
sort($trafienia);
foreach($trafienia as $pojedyncze) {
echo"<a href=http://www.nhs.kom.pl?id=$pojedyncze>$pojedyncze</a><br>";
}
}
} else {
echo "Przecież chciałeś czegoś szukać! Powrót";
}

?>[/php:1:c03b204417]

f.php
[php:1:c03b204417]<?php

function drzewko($folder) {
global $pliki;
if($folder != "/") {
$folder .= "/";
}
$id_f = opendir($folder);
if($id_f) {
while($plik = readdir($id_f)) {
if($plik == '.' || $plik == '..') {
continue;
}
if(is_dir($folder . $plik)) {
drzewko($folder . $plik);
} else {
$pliki[] = $folder . $plik;
}
}
closedir($id_f);
}
return $pliki;
}

function czytelne($spis) {

$rozszerzenie[] = "htm";

foreach($rozszerzenie as $roz) {
$dl_roz = strlen($roz);
foreach($spis as $plik) {
if(substr($plik, -$dl_roz) == $roz) {
$wynik[] = $plik;
}
}
}
return $wynik;
}

$link = basename ($pojedyncze);
$link = basename ($pojedyncze,".htm");

?>[/php:1:c03b204417]

P.S : Da się otworzyc okno formularza o określonych wymiarach questionmark.gif[/i]
adwol
Cytat
No wiec męcze sie z wyszukiwarką juz chyba ze 3 dni. Wszysko działa, tylko chciałbym zeby działało trochę inaczej. Chodzi oto ze po znalezieniu plików sa tworzone linki w taki sposób : <a href=./plik.htm>./plik.htm</a> , a ja potrzebuje aby wyglądały one w taki sposób : <a href=plik>Plik</a>.

Użyj funkcji basename().
[php:1:fe46d2f6b8]$plik = basename($plik)[/php:1:fe46d2f6b8]
Cytat
Mam nadzieje że znajdzie sie tu ktoś na tyle miły, aby nie odesłał mnie do manuala, lecz zrobił to oco proszę.

Odesłanie do manuala przynosi więcej pożytków niż Ci się wydaje.
Cytat
P.S : Da się otworzyc okno formularza o określonych wymiarach questionmark.gif

Chyba w stylach takie rzeczy da sie zrobić, ale nie wiem na pewno.
FiDO
Nie rozumiem dokladnie co masz na mysli przez okno formularza, ale jesli chodzi Ci o okno w ktorym znajduje sie formularz to mozesz otworzyc okno o ustalonych wymiarach przy pomocy JS (window.open).
oggy
chodzi mi o to zeby po wypełnieniu formularza plik otworzył sie w nowym oknie ookreślonych wymiarach .. wiem jak to zrobić ale tylko w linkach ..
oggy
Cytat
Użyj funkcji basename().


No ok, tyle to ja wiem tylko niewiem w jakim pliku, gdzie i do jakiej zmiennej sad.gif
adwol
Cytat
No ok, tyle to ja wiem tylko niewiem w jakim pliku, gdzie i do jakiej zmiennej sad.gif

Teraz to ja nie rozumiem o co chodzi. Nie wiesz w jakiej zmiennej masz nazwe pliku?
oggy
no własnie do konca niewiem .. próbowałem troche ale mi niewszyło .. i tak samo niewiem w jakim pliku to wkleić ..
patrycjusz
dobra ...
jeżeli chodzi o okno o okreslonych wymiarach to to wstaw w tym oknie a dokładnie to w sekcji head
Kod
<SCRIPT language=javascript>

function noweokno(nazwa,adres, szerokosc, wysokosc) {

    if (szerokosc > screen.width) {

  szerokosc = screen.width;

  wysokosc = screen.height;

    }

    lewa = (screen.width - szerokosc) /2;

    gora = (screen.height - wysokosc) /2;

    var okno = open(adres,nazwa,'scrollbars=yes,resizable=yes,left=' + lewa + ',top = ' + gora + ',width=' + szerokosc + ',height=' + wysokosc);

    okno.focus();

}

</script>

a takim poleceniem je otwierasz...
Kod
<a href="javascript:noweokno('tytuł okna','adres_okna.html','685','470');">

a co do poprzedniego pytanie ... hmmm... to ja bym cie nie odesłał do manula ale proponuje ci rozpisz sobie na kartce co i jak ma robić ta wyszukiwarka, rozrysuj sobie cała konstrukcje(wszystkie ify itd) no i mysle ze dojdziesz do tego co jest nie tak... a jak nie to proponuje kursy dla poczatkujacych.
Pozdrawiam PAT
spenalzo
Cytat
no własnie do konca niewiem .. próbowałem troche ale mi niewszyło .. i tak samo niewiem w jakim pliku to wkleić ..

Hmmm... i Ty się nas pytasz? Najlepiej napisz jeszcze raz, bo tutaj jest poplątanie z pomieszaniem.
oggy
No kurcze .. chodzi o to ze w linku jest zmienna : $pojedyńcze a ona ma wartoś taką : katalog/nazwapliku.htm gdzie nazwa pliku to nazwa znalezionego pliku po wyszukaniu. Ja potrzebuje aby zmienna miała taką wartość : nazwapliku. Próbowałem to zrobić (tak jak poradziliście) funkcją [manual:2f05834629]basename[/manual:2f05834629], ale ona usuneła mi z niej tylko katalog i teraz wartośc jest taka ./nazwapliku.htm. Teraz rozumiecie o co mi chodzi.

A co do formularza to chodzi mi o to ze jak ktoś wypełni formularz i kliknie ok to rzeby kolejna strona otworzyła sie w oknie o określonych wymiarach..

Dzięki wielkie, pozdrawiam.. Oggy
adwol
Cytat
No kurcze .. chodzi o to ze w linku jest zmienna : $pojedyńcze a ona ma wartoś taką : katalog/nazwapliku.htm gdzie nazwa pliku to nazwa znalezionego pliku po wyszukaniu. Ja potrzebuje aby zmienna miała taką wartość : nazwapliku. Próbowałem to zrobić (tak jak poradziliście) funkcją [manual:00e14b2720]basename[/manual:00e14b2720], ale ona usuneła mi z niej tylko katalog i teraz wartośc jest taka ./nazwapliku.htm. Teraz rozumiecie o co mi chodzi.

No to:
[php:1:00e14b2720]<?php
basename($pojedyncze, '.htm');
?>[/php:1:00e14b2720]
ale Ci to oczywiście zetnie tylko rozszerzenia .htm.
oggy
no kurde dalej nic dodałem to tu :

[php:1:a76ed0b7a8]
<?php

function drzewko($folder) {
global $pliki;
if($folder != "/") {
$folder .= "/";
}
$id_f = opendir($folder);
if($id_f) {
while($plik = readdir($id_f)) {
if($plik == '.' || $plik == '..') {
continue;
}
if(is_dir($folder . $plik)) {
drzewko($folder . $plik);
} else {
$pliki[] = $folder . $plik;
}
}
closedir($id_f);
}
return $pliki;
}

function czytelne($spis) {

$rozszerzenie[] = "htm";

foreach($rozszerzenie as $roz) {
$dl_roz = strlen($roz);
foreach($spis as $plik) {
if(substr($plik, -$dl_roz) == $roz) {
$wynik[] = $plik;
}
}
}
return $wynik;
}

basename($pojedyncze, '.htm');


?> [/php:1:a76ed0b7a8]

Tak ma byc, jezeli tak to niedziała .. to moze wysle to komus spakowane i ktoś to zrobi .. po tak to nam sie chyba nieuda ..
uboottd
Jeja, skrot myslowy.

[php:1:c6d1ae1424]
$pojedyncze = basename($pojedyncze,".htm");
[/php:1:c6d1ae1424]

Pozatym w tym kdozie to dwie funkcje sa ni przypial ni przylatal a to wywolanie to tez spadlo nagle z choinki....
oggy
ale to i tak niezmienia ... myślę ze to temu niedziała ze wkleiłem to w pliku f.php a on jest includowany na samym początku pliku szukaj2.htm a zmienna pojedyncze jest uzyta na samym koncu. Może źle myśle ale ważne ze próbuję :wink:
spenalzo
Tak na marginesie: pliki z kodem php powinno się raczej nazywać z roszerzeniem .php, ewentualnie .php3 lub .phtml
oggy
biggrin.gif .. ale to i tak raczej nic nie zmieni ..
spenalzo
Cytat
biggrin.gif .. ale to i tak raczej nic nie zmieni ..

Tutaj nie, ale wgrasz ten plik na serwer i nie będzie działać. Czemu? Bo na serwerze może nie być ustawione parsowanie plików .htm (jak już to .html) jako skrypty php.
oggy
ale ja to mam na serwerze i mi wszystko działa, tzn nie mam problemów z tym aby skrypty php nie działały w plikach htm
oggy
No co jest .. nikt nie wie jak to zrobić .. ? :cry:
marcipio
foreach($trafienia as $pojedyncze)

[php:1:51a5212b99]<?php
{ $pojedyncze=basename($pojedyncze, '.html');
echo "<table width=300><tr><td bgcolor=#1E5A1E>
<a href=$pojedyncze>$pojedyncze</a><br>
</td></tr> </table> ";
?>[/php:1:51a5212b99]

Oczywiście tabele nie są potrzebne.

Tylko jeden problem, pliki muszą mieć takie samo rozszerzenie, jeśli masz pliki różnych typów np. htm, html, php itp.. to jest pronlem. Ja przynajmniej na razie nie wiem jak go rozwiązać
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.