Pregunta

En una URL como la siguiente, me gustaría obtener el valor de ProdId. El formato de URL será siempre constante, al igual que el nombre del parámetro, pero la longitud del valor puede cambiar. Siempre será numérico.

http://www.example.com/page.php?ProdId=2683322&xpage=2

Uso de PHP ¿cuál es la manera más rápida de conseguirlo (Voy a estar procesando 10.000 de lo que la velocidad es un problema)?

¿Fue útil?

Solución

PHP ha incorporado funciones de este. Usar parse_url() y parse_str() juntos.

armado a partir de php.net:

$url = 'http://www.example.com/page.php?ProdId=2683322&xpage=2';

// Parse the url into an array
$url_parts = parse_url($url);

// Parse the query portion of the url into an assoc. array
parse_str($url_parts['query'], $path_parts);

echo $path_parts['ProdId']; // 2683322
echo $path_parts['xpage']; // 2

Otros consejos

Probar expresión regular:

^http://www\.example\.com/page\.php\?ProdId=(\d+)

¿No puedes usar $_GET['ProdId']?

Trate de esta función:

/https?:\/{2}(?:w{3}\.)?[-.\w][^\.]+\.{2,}\/ProdId=\d+\&xpage=\d+/
/^[^#?]*\?(?:[^#]*&)?ProdId=(\d+)(?:[#&]|$)/

Y lo mismo en Inglés:

  1. Partido nada excepto ? o # (esto nos llegar al inicio de la cadena de consulta o la parte de hash, lo que ocurra primero)
  2. Partido del ? (si había sólo una parte de hash, esto va a descalificar el partido)
  3. partido nada Opcionalmente (pero no un #, en caso de que hay una parte de hash) seguido de &
  4. Correspondientes a su par de valores clave de poner el valor en un sub-patrón de captura
  5. Partido, ya sea de la siguiente parámetro y, # o el final de la cadena.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top