Gå til innhold

En lang adresse, trenger å dra ut en liten[LØST]


Anbefalte innlegg

Videoannonse
Annonse
Gjest Slettet-df17e

Ikke testa, men skal funke.

 

<?php

$str = '/index.php?option=com_content&task=view&id=2&Itemid=1';
preg_match('@(?<=id=)(.*)(?=&)@', $str, $match);
print_r($match);

?>

 

EDIT: Den henter ut tallet "2", men skal du ha med "id=" også?

Endret av Slettet-df17e
Lenke til kommentar

Sjekk ut $_SERVER['REQUEST_URI'] det skal gi deg strengen, og $_GET['id'] vil gi deg verdien.

 

Evt gjør slik for å se hva som er tilgjengelig, veldig greit for testing

PHP
<?php

echo "<div>Server:</div><pre>";

print_r($_SERVER);

echo "</pre><div>Get:</div><pre>";

print_r($_GET);

echo "</pre>";

?>

Lenke til kommentar
Vil koden ta linken som er i adressefeltet, og gi meg tallet som er etter id= ??

9321067[/snapback]

 

Legg den koden jeg la ut i en egen php fil, og kall den f.eks test.php og start den opp. Så kan du f.eks prøve echo $_GET['id']; og echo $_SERVER['REQUEST_URI']; i bunn av den eller en annen php fil og se hva som skjer ;)

Lenke til kommentar

Legg den koden jeg la ut i en egen php fil, og kall den f.eks test.php og start den opp. Så kan du f.eks prøve echo $_GET['id']; og echo $_SERVER['REQUEST_URI']; i bunn av den eller en annen php fil og se hva som skjer ;)

9321091[/snapback]

 

La dette inn i en php-fil:

 

echo "<div>Server:</div><pre>";

print_r($_SERVER);

echo "</pre><div>Get:</div><pre>";

print_r($_GET);

echo "</pre>";

 

echo $_GET['id'];

echo $_SERVER['REQUEST_URI']

 

Fikk ingenting ut.

 

Biihead

Lenke til kommentar

Ikke testa, men skal funke.

 

 

<?php

$str = '/index.php?option=com_content&task=view&id=2&Itemid=1';
preg_match('@(?<=id=)(.*)(?=&)@', $str, $match);
print_r($match);

?>
EDIT: Den henter ut tallet "2", men skal du ha med "id=" også?

 

Testa denne, og fikk ut "Array ( [0] => 2 [1] => 2 )". Må jeg virkelig behandle denne videre for å kun sitte igjen med tallet "2" ?

 

Er rusten som fy på PHP, og må nok sette meg ned i noen måneder for å komme meg ajour igjen!!

 

biihead

Endret av TSP
Lenke til kommentar

Skal du ha tak i tallet to, er det $_GET['id'] du leter etter. Bruk av regex er bare sløsing med ressurser.

 

Husk å uskadeliggjør den før du bruker den i en eventuell spørring mot database.

Feks $id = intval( $_GET['id'] ); eller $id = intval( mysql_real_escape_string( $_GET['id'] ));

Endret av M4rTiN
Lenke til kommentar

Klikk for å se/fjerne innholdet nedenfor

Legg den koden jeg la ut i en egen php fil, og kall den f.eks test.php og start den opp. Så kan du f.eks prøve echo $_GET['id']; og echo $_SERVER['REQUEST_URI']; i bunn av den eller en annen php fil og se hva som skjer ;)

9321091[/snapback]

 

La dette inn i en php-fil:

 

echo "<div>Server:</div><pre>";

print_r($_SERVER);

echo "</pre><div>Get:</div><pre>";

print_r($_GET);

echo "</pre>";

 

echo $_GET['id'];

echo $_SERVER['REQUEST_URI']

 

Fikk ingenting ut.

 

Biihead

9321141[/snapback]

 

Du la den ut på domene ditt eller en annen webserver ? Hvis det ikke er noen innstillinger jeg er klar over så skal $_SERVER alltid være satt. $_GET vil være tom hvis det ikke er noen parameter i url'en.

Du mangler også ; på slutten av echo $_SERVER['REQUEST_URI'] i eksemplet ditt over, er det bare en kopieringsfeil når du postet, eller er det slik i .php fila også ? Hvis ikke php er satt til å hvis feilmeldinger så vil skjermen bli blank, prøv å legg til

PHP
error_reporting(E_ALL);

ini_set('display_errors', '1');

i toppen av fila.

 

Prøv f.eks med test.php?option=com_content&task=view&id=2&Itemid=1 for å gi $_GET verdier.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...