/ 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
Fil behandling i PHP
Fra : John Doe


Dato : 03-04-01 18:19

Jeg har lavet et script i PERL, men pga nogle server problemer kan jeg ikke
få det til at virke. Jeg vil nu gerne oversætte det til PHP. Jeg har ingen
erfaringer med PHP men jeg har læst jeres artikler. Mit eneste problem er at
åbne en fil og behandle den.

Det, jeg vil gøre er at modtage 2 parametre fra brugeren, se om disse
parametre eksisterer i en database fil, hvis ikke tilføje dem til databasen.
min database fil er en simpel tekst fil. Hvordan kan man realisre følgende
med PHP?

open(LISTE, "$root/anket.txt");
my(@liste) = <LISTE>;
close(LISTE);

foreach $line
iste){
my($parameter1, $parameter2) = split(/\|\|/, $line);
print $parameter1 . '-' . $parameter2;
}

indholdet af teksfilen er $parameter1||$parameter2\n osv (flere linjer af samme type)

og:

sub check{
open(CHECK, "$root/anket.txt");
my(@liste) = <CHECK>;
close(CHECK);
foreach $line (@liste){
my($parameter1, $parameter2) = split(/\|\|/, $line);
chop($parameter2);
if((lc($parameter1) eq lc($IN{'parameter1'})) && (lc($$parameter2) eq lc($IN{'parameter2'}))){
$result = 1;
}else{
$result = 0;
}
}
return $result;
}

i subrutinen er hashen $IN{'parameter'} er brugerens input som behandlet i "get_input()".. Hvordan oversætter man disse til PHP?




 
 
Niels Andersen (06-04-2001)
Kommentar
Fra : Niels Andersen


Dato : 06-04-01 20:00

"John Doe" <fatih@forum.dk> skrev i en meddelelse
news:9ad0m7$2f65$1@news.cybercity.dk...
> Mit eneste problem er at
> åbne en fil og behandle den.

> open(LISTE, "$root/anket.txt");
> my(@liste) = <LISTE>;
> close(LISTE);

Mon ikke det du gør her er, at indlæse linjerne i filen til et array?

$liste = file ("$DOCUMENT_ROOT/anket.txt");

> foreach $line
> iste){
> my($parameter1, $parameter2) = split(/\|\|/, $line);
> print $parameter1 . '-' . $parameter2;
> }

Og her skriver vi dem så ud

reset ($liste);
foreach($liste as $line) {
list($parameter1, $parameter2) = split(/\|\|/, $line);
// i denne "split" er jeg i tvivl om regex er korrekt,
// jeg har bare kopieret din.
print $parameter1 . '-' . $parameter2;
}

> indholdet af teksfilen er $parameter1||$parameter2\n osv (flere linjer af
samme type)

> sub check{
function check(){

> open(CHECK, "$root/anket.txt");
> my(@liste) = <CHECK>;
> close(CHECK);

$liste = file ("$DOCUMENT_ROOT/anket.txt");

> foreach $line (@liste){
> my($parameter1, $parameter2) = split(/\|\|/, $line);

foreach($liste as $line) {
list($parameter1, $parameter2) = split(/\|\|/, $line);

> chop($parameter2);

$parameter2 = chop($parameter2);

> if((lc($parameter1) eq lc($IN{'parameter1'})) && (lc($$parameter2)
eq lc($IN{'parameter2'}))){

if ($parameter1==$userparam1 && $parameter2==$userparam2 && ) {
// Se længere nede ang. $userparam1 og $userparam2

> $result = 1;
> }else{
> $result = 0;
> }
> }
> return $result;
> }

> i subrutinen er hashen $IN{'parameter'} er brugerens input som behandlet i
"get_input()".. Hvordan oversætter man disse til PHP?

Det fatter jeg så intet af. :) I mit eksempel har jeg bare brugerens input
som $userparam1 og 2. Men ellers er dette en måde at gøre det i PHP, hvis
jeg forstår dit perl korrekt.

Du kan få hjælp til funktionerne på http://php.net. Fx chop:
http://php.net/chop. Der er også links til lignende funktioner som fx.
trim(), som også fjerner whitespace fra starten.
Jeg vil nok anbefale at du lige læser hjælpen til de benyttede funktioner,
for at sikre dig at de gør det samme som Perl-funktionerne. Jeg har gættet
en hel masse i ovenstående. :)


Mvh.

Niels Andersen



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

Månedens bedste
Årets bedste
Sidste års bedste