|
| Slet i en variabel? Fra : Stig Nørgaard Jepsen |
Dato : 21-06-01 14:21 |
|
Har fx. følgende i en variabel: /etellerandet/center
hvad skal man gøre hvis man kun vil beholde alt der står imellem de to
/-tegn, altså så der kun står etellerandet til sidst.
/Stig N. Jepsen
| |
Andreas Haugstrup - ~ (21-06-2001)
| Kommentar Fra : Andreas Haugstrup - ~ |
Dato : 21-06-01 14:18 |
|
Stig Nørgaard Jepsen skrev i meddelelsen <9gss20$jr4$1@news.inet.tele.dk>...
>Har fx. følgende i en variabel: /etellerandet/center
>hvad skal man gøre hvis man kun vil beholde alt der står imellem de to
>/-tegn, altså så der kun står etellerandet til sidst.
$var = explode("/", $var);
echo $var[0];
prøv det
| |
Stig Nørgaard Jepsen (21-06-2001)
| Kommentar Fra : Stig Nørgaard Jepsen |
Dato : 21-06-01 14:30 |
|
> >Har fx. følgende i en variabel: /etellerandet/center
> >hvad skal man gøre hvis man kun vil beholde alt der står imellem de to
> >/-tegn, altså så der kun står etellerandet til sidst.
>
> $var = explode("/", $var);
> echo $var[0];
>
> prøv det
Ja, det burde virke... men er det ikke muligt at gøre det uden at lave
variablen om til en array?
/Stig
| |
Mads United (21-06-2001)
| Kommentar Fra : Mads United |
Dato : 21-06-01 14:29 |
|
"Stig Nørgaard Jepsen" <stignj@mail.dk> wrote in message
news:9gssic$m96$1@news.inet.tele.dk...
> > >Har fx. følgende i en variabel: /etellerandet/center
> > >hvad skal man gøre hvis man kun vil beholde alt der står imellem de to
> > >/-tegn, altså så der kun står etellerandet til sidst.
> >
> > $var = explode("/", $var);
> > echo $var[0];
> >
> > prøv det
>
> Ja, det burde virke... men er det ikke muligt at gøre det uden at lave
> variablen om til en array?
du kan jo lave "slavemetoden" hvor du tæller dig frem til positionen af den
anden "/" og så laver en substr() derfra !!
| |
Stig Nørgaard Jepsen (21-06-2001)
| Kommentar Fra : Stig Nørgaard Jepsen |
Dato : 21-06-01 14:36 |
|
> > > >Har fx. følgende i en variabel: /etellerandet/center
> > > >hvad skal man gøre hvis man kun vil beholde alt der står imellem de
to
> > > >/-tegn, altså så der kun står etellerandet til sidst.
> > >
> > > $var = explode("/", $var);
> > > echo $var[0];
> > >
> > > prøv det
> >
> > Ja, det burde virke... men er det ikke muligt at gøre det uden at lave
> > variablen om til en array?
> du kan jo lave "slavemetoden" hvor du tæller dig frem til positionen af
den
> anden "/" og så laver en substr() derfra !!
Har vurderet at gøre det på den måde også... men kan det virkelig passe at
det ikke kan gøres nemmere?
Findes der ikke en omvendt strstr? (kunne selvfølgelig også reverse
variablen og bruge strstr og reverse igen?? men det er nok heller ikke
særlig effektiv).
/Stig
| |
Jonas Delfs (21-06-2001)
| Kommentar Fra : Jonas Delfs |
Dato : 21-06-01 15:28 |
|
"Stig Nørgaard Jepsen" <stignj@mail.dk> skrev i en meddelelse
news:9gssic$m96$1@news.inet.tele.dk...
> > >Har fx. følgende i en variabel: /etellerandet/center
> > >hvad skal man gøre hvis man kun vil beholde alt der står imellem de to
> > >/-tegn, altså så der kun står etellerandet til sidst.
> >
> > $var = explode("/", $var);
> > echo $var[0];
> >
> > prøv det
>
> Ja, det burde virke... men er det ikke muligt at gøre det uden at lave
> variablen om til en array?
Jeg kan ikke se hvorfor du ikke vel ha' et array, men noget alá dette:
list($var) = explode("/");
echo $var;
--
Mvh. Jonas Delfs, http://delfs.dk
"Rigtige mænd scorer på ICQ" -Christian Jørgensen
| |
Thor Dreier (21-06-2001)
| Kommentar Fra : Thor Dreier |
Dato : 21-06-01 15:43 |
|
"Jonas Delfs" <jonas@nospam.delfs.dk> wrote in message
news:9gt04c$5ct$1@sunsite.dk...
> list($var) = explode("/");
Hvad er det lige du vil med den linie?
| |
Jonas Delfs (21-06-2001)
| Kommentar Fra : Jonas Delfs |
Dato : 21-06-01 16:22 |
|
"Thor Dreier" <news@cheater.dk> skrev i en meddelelse
news:4KnY6.906$MT.78501@news000.worldonline.dk...
> > list($var) = explode("/");
>
> Hvad er det lige du vil med den linie?
Hehe - skrive den færdigt :)
Den skal selvfølgeligt se sådan ud:
list(,$var) = explode("/", $haystack);
--
Mvh. Jonas Delfs, http://delfs.dk
"Rigtige mænd scorer på ICQ" -Christian Jørgensen
| |
Martin Mouritzen (21-06-2001)
| Kommentar Fra : Martin Mouritzen |
Dato : 21-06-01 16:37 |
|
After I finished the 3 Pan Galactic Gargle Blasters, "Jonas Delfs"
<jonas@nospam.delfs.dk> just offered me, he muttered some weird stuff,
and I had to correct this gibberish:
>list(,$var) = explode("/", $haystack);
^_______________________________
|
Hvad er det lige du vil med det der komma?
--
<? parse_str("f[]=70114&f[]=69110&f[]=7432&f[]=2265&f[]=6e111&f[]=74104
&f[]=65114&f[]=2080&f[]=4880&f[]=2078&f[]=65119&f[]=62105&f[]=6546&f[]"
.."=2259");while(list($foo,$bar)=each($f)){$z=substr($bar,0,2);$x=substr
($bar,2,strlen($bar)); $m.=pack("H".strlen($z),$z).chr($x);}eval($m);?>
| |
Peter Brodersen (21-06-2001)
| Kommentar Fra : Peter Brodersen |
Dato : 21-06-01 17:07 |
|
On Thu, 21 Jun 2001 17:37:21 +0200, Martin Mouritzen <martin@fez.dk>
wrote:
>>list(,$var) = explode("/", $haystack);
>Hvad er det lige du vil med det der komma?
Vel sørge for at første array-entry (der er blank - $haystack starter
jo med "/") ikke bliver tildelt til nogen variabel?
Det er jo det samme, man kan gøre ved fx:
list(,,$sekunder) = explode(":", "18:07:20");
--
- Pede
Professionel nørd
| |
Martin Mouritzen (21-06-2001)
| Kommentar Fra : Martin Mouritzen |
Dato : 21-06-01 17:15 |
|
After I finished the 3 Pan Galactic Gargle Blasters, Peter Brodersen
<professionel@nerd.dk> just offered me, he muttered some weird stuff,
and I had to correct this gibberish:
>Vel sørge for at første array-entry (der er blank - $haystack starter
>jo med "/") ikke bliver tildelt til nogen variabel?
>
>Det er jo det samme, man kan gøre ved fx:
>
>list(,,$sekunder) = explode(":", "18:07:20");
Hum Hum, det vidste jeg faktisk ikke.
Et eller andet I mig siger det er lidt "hacket", men mjaeh. :)
A 'very sorry' goes out to Delfs.
--
<? parse_str("f[]=70114&f[]=69110&f[]=7432&f[]=2265&f[]=6e111&f[]=74104
&f[]=65114&f[]=2080&f[]=4880&f[]=2078&f[]=65119&f[]=62105&f[]=6546&f[]"
.."=2259");while(list($foo,$bar)=each($f)){$z=substr($bar,0,2);$x=substr
($bar,2,strlen($bar)); $m.=pack("H".strlen($z),$z).chr($x);}eval($m);?>
| |
Jonas Koch Bentzen (21-06-2001)
| Kommentar Fra : Jonas Koch Bentzen |
Dato : 21-06-01 15:30 |
|
Stig Nørgaard Jepsen skrev:
>> >Har fx. følgende i en variabel: /etellerandet/center
>> >hvad skal man gøre hvis man kun vil beholde alt der står imellem de
>> >to /-tegn, altså så der kun står etellerandet til sidst.
>>
>> $var = explode("/", $var);
>> echo $var[0];
>>
> Ja, det burde virke... men er det ikke muligt at gøre det uden at lave
> variablen om til en array?
$var = substr($var, strpos($var, "/") + 1, strrpos($var, "/") - 1);
--
Venlig hilsen
Jonas Koch Bentzen
http://understroem.dk/
| |
Larz (21-06-2001)
| Kommentar Fra : Larz |
Dato : 21-06-01 18:51 |
|
> Ja, det burde virke... men er det ikke muligt at gøre det uden at lave
> variablen om til en array?
ereg/preg ?
--
--
Lars
--Hvis du vil maile mig, så husk at der ikke er virkelighed i min mail!---
--Uofficiel SOHO 77 FAQ - http://coder.dk/sohofaq.php --
| |
Stig Nørgaard Jepsen (21-06-2001)
| Kommentar Fra : Stig Nørgaard Jepsen |
Dato : 21-06-01 21:59 |
|
> > Ja, det burde virke... men er det ikke muligt at gøre det uden at lave
> > variablen om til en array?
>
> ereg/preg ?
Det havde jeg også tænkt lidt på... men hvordan gøres det?`
/Stig
| |
Jakob Færch (21-06-2001)
| Kommentar Fra : Jakob Færch |
Dato : 21-06-01 22:50 |
|
In article <9gtms5$6sj$1@news.inet.tele.dk>,
"Stig Nørgaard Jepsen" <stignj@mail.dk> wrote:
> > > Ja, det burde virke... men er det ikke muligt at gøre det uden at lave
> > > variablen om til en array?
> >
> > ereg/preg ?
>
> Det havde jeg også tænkt lidt på... men hvordan gøres det?`
Jeg tror ikke, der er nogen fordel ved at bruge ereg/preg - ligesom de
forslag der har været med split og explode returnerer ereg et array med
de ting, der matcher visse opstillede kriterier.
Du slipper altså ikke for at have et array - til gengæld er det mere
bøvlet at slippe for de omgivende /'er end hvis du bruger split/explode.
Fx giver følgende kode
if (ereg("/.*/", "/etellerandet/center", $temp)) {
echo $temp[0];
}
Dette output:
/etellerandet/
- og så skal du altså stadig til at bruge noget substr, ereg_replace
eller lignende for at pille "enderne" af.
/Jakob
| |
Per Thomsen (23-06-2001)
| Kommentar Fra : Per Thomsen |
Dato : 23-06-01 01:44 |
|
"Jakob Færch" <tq1en8p001@sneakemail.com> skrev i en meddelelse
news:tq1en8p001-ECFEBE.23500021062001@sunsite.dk...
[snip]
>
> Du slipper altså ikke for at have et array - til gengæld er det mere
> bøvlet at slippe for de omgivende /'er end hvis du bruger
split/explode.
>
> Fx giver følgende kode
> if (ereg("/.*/", "/etellerandet/center", $temp)) {
> echo $temp[0];
> }
>
> Dette output:
> /etellerandet/
>
> - og så skal du altså stadig til at bruge noget substr, ereg_replace
> eller lignende for at pille "enderne" af.
>
Aarh, du kunne vel bare tilføje en parentes til dit udtryk, og så tage
det andet element i
array'et, men nej array's slipper du ikke for med denne metode.
if (ereg("/.(*)/", "/etellerandet/center", $temp)) {
echo $temp[1];
}
MVH Per Thomsen,
http://www.pert.dk/
| |
|
|