|
| 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
| |
|
|