/ 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
find værdien
Fra : Peter Stidsen


Dato : 24-11-03 01:43

Prøver desperart at løse dette problem:

Har indlæst en textfil til $content

$content = "PW[spyder]PB[winifred]WR[8k]BR[13k]"

Indholdet kan beskrives som 'XX[værdi]' hvor XX
angiver typen af information. Afhængig af hvilken fil jeg indlæser kan
der være flere eller færre informationer end de viste.

1)Hvordan finder jeg frem til en bestemt værdi? Hvis jeg ønsker at
tildele værdien fra: 'PB[winifred]' til en variabel: $pb =
"winifred"

2) Hvordan lægger jeg alle disse informationer ind i et array så
$array[XX] indeholder den tilsvarende værdi?

Håber at komme videre med denne funktion. Al hjælp er påskønnet.

På forhånd tak.

Peter Stidsen

 
 
kim isaksen (25-11-2003)
Kommentar
Fra : kim isaksen


Dato : 25-11-03 17:51

"Peter Stidsen" <mail@webq.dk> wrote in message
news:pan.2003.11.24.00.42.38.32737@webq.dk...
> Prøver desperart at løse dette problem:
>
> Har indlæst en textfil til $content
>
> $content = "PW[spyder]PB[winifred]WR[8k]BR[13k]"
>
> Indholdet kan beskrives som 'XX[værdi]' hvor XX
> angiver typen af information. Afhængig af hvilken fil jeg indlæser kan
> der være flere eller færre informationer end de viste.
>
> 1)Hvordan finder jeg frem til en bestemt værdi? Hvis jeg ønsker at
> tildele værdien fra: 'PB[winifred]' til en variabel: $pb =
> "winifred"
>
> 2) Hvordan lægger jeg alle disse informationer ind i et array så
> $array[XX] indeholder den tilsvarende værdi?
>
> Håber at komme videre med denne funktion. Al hjælp er påskønnet.

<?

$content_string = "PW[spyder]PB[winifred]WR[8k]BR[13k]";
$c= explode("]",$content_string);
$cnt = count($c)-1;
for($ii=0; $ii<$cnt; $ii++) {
$c1 = explode("[",$c[$ii]);
$content[$c1[0]]=$c1[1];
}

echo $content["PW"]; // giver værdien af PW osv. med de andre..

?>

Kim Isaksen



Peter Stidsen (25-11-2003)
Kommentar
Fra : Peter Stidsen


Dato : 25-11-03 18:01


> Kim Isaksen

Tusind tak for hjælpen. Jeg var ved at finde en løsning ud fra tråden
bar[foo], men din løsning er meget mere elegant.

En stor stjerne til Kim Isaksen i mit regnskab

Peter Stidsen

Peter Stidsen (25-11-2003)
Kommentar
Fra : Peter Stidsen


Dato : 25-11-03 18:31


>> $content = "PW[spyder]PB[winifred]WR[8k]BR[13k]"

Hvad gør jeg hvis strengen nu indeholde uønskede mellemrum eller
linjeskift.

$content = "PW[spyder]PB[winifred] WR[8k]BR[13k]";

Så vil jeg ikke længere kunne finde $info[WR]

kim isaksen (25-11-2003)
Kommentar
Fra : kim isaksen


Dato : 25-11-03 23:39

"Peter Stidsen" <mail@webq.dk> wrote in message
news:pan.2003.11.25.17.31.14.417197@webq.dk...
>
> >> $content = "PW[spyder]PB[winifred]WR[8k]BR[13k]"
>
> Hvad gør jeg hvis strengen nu indeholde uønskede mellemrum eller
> linjeskift.
>
> $content = "PW[spyder]PB[winifred] WR[8k]BR[13k]";
>
> Så vil jeg ikke længere kunne finde $info[WR]

Brug trim() OG str_replace hvis strengen også kan se således ud.
> >> $content = "PW[sp yd er]PB[wi ni fred]WR[8k]BR[13k]"

<?
$content_string = "PW[spy der]PB[wini fred] WR[8k ] BR[13k]";
$c= explode("]",$content_string);
$cnt = count($c)-1;
for($ii=0; $ii<$cnt; $ii++) {
$c1 = explode("[",$c[$ii]);
$content[trim($c1[0])]=trim($c1[1]); // uden str_replace
//$content[trim(str_replace(" ","",$c1[0]))]=trim(str_replace("
","",$c1[1]));

}
?>
<PRE>
<?
echo $content_string."\n\n";
echo "##content data\n\n";
print_r($content);
?>



Kim Schulz (25-11-2003)
Kommentar
Fra : Kim Schulz


Dato : 25-11-03 18:33

On Mon, 24 Nov 2003 01:42:38 +0100
Peter Stidsen <mail@webq.dk> wrote:
> Prøver desperart at løse dette problem:
>
> Har indlæst en textfil til $content
>
> $content = "PW[spyder]PB[winifred]WR[8k]BR[13k]"
>
> Indholdet kan beskrives som 'XX[værdi]' hvor XX
> angiver typen af information. Afhængig af hvilken fil jeg indlæser kan
> der være flere eller færre informationer end de viste.
>
> 1)Hvordan finder jeg frem til en bestemt værdi? Hvis jeg ønsker at
> tildele værdien fra: 'PB[winifred]' til en variabel: $pb =
> "winifred"
>
> 2) Hvordan lægger jeg alle disse informationer ind i et array så
> $array[XX] indeholder den tilsvarende værdi?
>
> Håber at komme videre med denne funktion. Al hjælp er påskønnet.


$content = "PW[spyder]PB[winifred]WR[8k]BR[13k]";

$foo=preg_match_all("/(..)\[(\w+)\]/",$content,$matches);

for($x=0;$x<$foo;$x++){
   $$matches[1][$x]=$matches[2][$x];      //til spg 1
   $array[$matches[1][$x]]=$matches[2][$x];   //til spg 2
}
print "PW=$PW<br>PB=$PB<br>WR=$WR<br>BR=$BR<br>";
print "PW=$array[PW]<br>PB=$array[PB]<br>WR=$array[WR] .... osv


Meget smukkere kan det vist ikke gøres.



Kim Schulz (25-11-2003)
Kommentar
Fra : Kim Schulz


Dato : 25-11-03 18:34

On Tue, 25 Nov 2003 18:31:14 +0100
Peter Stidsen <mail@webq.dk> wrote:
>
> >> $content = "PW[spyder]PB[winifred]WR[8k]BR[13k]"
>
> Hvad gør jeg hvis strengen nu indeholde uønskede mellemrum eller
> linjeskift.
>
> $content = "PW[spyder]PB[winifred] WR[8k]BR[13k]";
>
> Så vil jeg ikke længere kunne finde $info[WR]


min løsning med preg ville stadig virke uden problemer

Søg
Reklame
Statistik
Spørgsmål : 177502
Tips : 31968
Nyheder : 719565
Indlæg : 6408534
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste