/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Tjekke fil på remote host
Fra : Jette


Dato : 12-01-02 21:15

Jeg har forsøgt at bruge ftp_nlist til at tjekke om en fil eksisterer på en
remote host. Koden jeg har lavet virker også, men ikke hver gang. Nogen
gange tager det en evighed og det ender med ingenting.
Jeg kan se på http://www.php.net/manual/en/function.ftp-nlist.php (se sidste
note) at jeg ikke er ene om at have problemet.

Jeg forstår det bare ikke, for hvis jeg forsøger at åbne en eksisterende fil
på en remote host med
fopen("ftp://user:passwd@ftp.domaene.dk/test.txt","w") får jeg med det samme
en "Warning:" der siger at filen allerede eksisterer. Det er den aldrig ret
længe om.... så hvorfor går det i kludder med ftp_nlist?

Nu gør jeg følgende for at tjekke om en fil eksisterer:

if ($file = @fopen("ftp://user:passwd@ftp.domaene.dk/test.txt","w")) {
echo "Filen er oprettet";
fclose($file);
} else {
echo "Filen eksisterer allerede";
}

Det virker hver gang, og det går stærkt .... men det er jo nok ikke den
korrekte måde at gøre det på .... men hvordan ville I tjekke eksistensen af
en fil på en remote host?

Mvh. Jette



 
 
Esben Skov Pedersen (13-01-2002)
Kommentar
Fra : Esben Skov Pedersen


Dato : 13-01-02 00:35

"Jette" <jette-nielsen@get2net.dk> wrote in
news:a1q5k8$19ku$1@news.cybercity.dk:

> Jeg har forsøgt at bruge ftp_nlist til at tjekke om en fil eksisterer
> på en remote host. Koden jeg har lavet virker også, men ikke hver gang.
> Nogen gange tager det en evighed og det ender med ingenting.
> Jeg kan se på http://www.php.net/manual/en/function.ftp-nlist.php (se
> sidste note) at jeg ikke er ene om at have problemet.

Det har jeg også prøvet. Det var med apache 1.3.22 under winxp pro og php
4.1.0 Jeg kom til den konklusion at det var styresystemets skyld. Fordi
scriptet virkede fint på en anden server. Jeg fandt desværre ikke nogen
løsning.



--
Med venlig hilsen Esben
for svar over email fjern _slet_

Steen \(MSDesign.dk\~ (13-01-2002)
Kommentar
Fra : Steen \(MSDesign.dk\~


Dato : 13-01-02 01:54

Hej...
jeg tror at jeg har svaret på dine bønner...
dog skal jeg lige sige at jeg ikke er prof... (ca. newbie af 5 grad ud af
47)

Nedenstående script tjekker om en fil er tilgængelig, den virker på interne
og eksterne filer og er hurtig... i hvert fald tager det ikke mange sekunder
før den har fundet resultatet...


jeg har også lige sat et par erstatningslinier ind så man ikke kommer til at
skrive noget forkert...
grunden til at jeg har gjort det, er at jeg selv bruger scriptet sammen med
et form text felt....så brugeren selv kan tjekke filen...

SCRIPT START
-----
<?

if($fil == ""){
echo "";
}
else{
$fil = eregi_replace(">>", "&raquo;", $fil); // denne linie skal være før
">" linien for at virke
$fil = eregi_replace("<<", "&laquo;", $fil); // denne linie skal være før
"<" linien for at virke
$fil = eregi_replace("<", "&lt;", $fil);
$fil = eregi_replace(">", "&gt;", $fil);
$fil = eregi_replace(" ", "%20", $fil);

echo "<b><a href=\"$fil\">$fil</a></b> ";

$laesfil = @fopen($fil, r);

if($laesfil){
echo 'er <font color="green">online</b></font><br>';
echo "<a href='se_fil.php?side=$fil'>Klik her for at se kildekoden for
<b>$fil</b></a> (&laquo;virker kun for .php og .inc sider på den interne
server)<br>";
fclose($laesfil);
}
else {
echo 'er <font color="red"><b>offline</b></font>';
}
}
?>
------
SCRIPT SLUT


Hvis der er en eller anden PHP guru derude som lige kommer til at læse
scriptet.... VÆRSGO OG KOMMENTER!!...



Niels Andersen (13-01-2002)
Kommentar
Fra : Niels Andersen


Dato : 13-01-02 16:53

"Steen (MSDesign.dk)" <steen@msdesign.dk> wrote in message
news:a1qlte$26cc$1@news.cybercity.dk...
> $fil = eregi_replace(">>", "&raquo;", $fil); // denne linie skal være før
> ">" linien for at virke
> $fil = eregi_replace("<<", "&laquo;", $fil); // denne linie skal være før
> "<" linien for at virke
> $fil = eregi_replace("<", "&lt;", $fil);
> $fil = eregi_replace(">", "&gt;", $fil);
> $fil = eregi_replace(" ", "%20", $fil);

Det stykke kan erstattes med:

$fil = urlencode($fil);
$fil = htmlspecialchars($fil);

Det er ikke det samme, men formålet er.
Og disse to linjer gør det *korrekt*.

Det kunne dog se ud som om, at du har lavet nogle mærkelige krumspring, som
der også skal tages hensyn til på en eller anden måde.
Fx. undrer det mig en hel del, at du laver ">>" om til "»", som jo er noget
helt andet.

--
Mvh.

Niels Andersen



Steen \(MSDesign.dk\~ (13-01-2002)
Kommentar
Fra : Steen \(MSDesign.dk\~


Dato : 13-01-02 17:52

> Det stykke kan erstattes med:
>
> $fil = urlencode($fil);
> $fil = htmlspecialchars($fil);
>
> Det er ikke det samme, men formålet er.
> Og disse to linjer gør det *korrekt*.

Mange tak, vidste ikke om der var sådan en funktion.... som sagt...så er jeg
lidt newbie... og kan kun lære nye ting hele tiden...


> Fx. undrer det mig en hel del, at du laver ">>" om til "»", som jo er
noget
> helt andet.

se lige netop det der.... det kom jeg selv lige i tanke om at jeg havde
glemt at fjerne.... det var faktisk bare noget jeg ville prøve en dag... og
så glemte jeg alt om at fjerne det !!!LoL!!! wups...

ikke fordi det jo forstyrre noget...havde bare slet ikke tænkt på at fjerne
det...

Jeg skulle bruge det til en tagwall... og så ville jeg bare gøre det nemmere
at skrive » .. ikke fordi jeg faktisk har haft utrolig meget nytte af
det....

Men det væsentlige af scriptet er fint nok??



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste