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



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

Månedens bedste
Årets bedste
Sidste års bedste