<?php
// Control de rutas (URL) en PHP para ejecutar peticiones API
// https://es.stackoverflow.com/q/119958/127
$url = 'http://w...content-available-to-author-only...e.com/padres/col/8';
$regex = '~^https?://[^/]+/(?P<modulo>[-\p{L}]+)(?:/(?P<coleccion>[-\p{L}]+))?(?:/(?P<id>\d+))?/?$~i';
if (preg_match( $regex, $url, $matches)) {
$modulo = $matches['modulo'];
$coleccion = isset($matches['coleccion']) ? $matches['coleccion'] : '';
$id = isset($matches['id']) ? $matches['id'] : '';
echo "Modulo:\t\t'$modulo'\nColección:\t'$coleccion'\nId:\t\t\t'$id'";
echo "\n\n\$matches = ";
var_export($matches);
} else {
// URL inválida
}
PD9waHAKLy8gQ29udHJvbCBkZSBydXRhcyAoVVJMKSBlbiBQSFAgcGFyYSBlamVjdXRhciBwZXRpY2lvbmVzIEFQSQovLyBodHRwczovL2VzLnN0YWNrb3ZlcmZsb3cuY29tL3EvMTE5OTU4LzEyNwoKCiR1cmwgICA9ICdodHRwOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5jb20vcGFkcmVzL2NvbC84JzsKJHJlZ2V4ID0gJ35eaHR0cHM/Oi8vW14vXSsvKD9QPG1vZHVsbz5bLVxwe0x9XSspKD86Lyg/UDxjb2xlY2Npb24+Wy1ccHtMfV0rKSk/KD86Lyg/UDxpZD5cZCspKT8vPyR+aSc7CgppZiAocHJlZ19tYXRjaCggJHJlZ2V4LCAkdXJsLCAkbWF0Y2hlcykpIHsKCSRtb2R1bG8gICAgPSAkbWF0Y2hlc1snbW9kdWxvJ107CgkkY29sZWNjaW9uID0gaXNzZXQoJG1hdGNoZXNbJ2NvbGVjY2lvbiddKSA/ICRtYXRjaGVzWydjb2xlY2Npb24nXSA6ICcnOwoJJGlkICAgICAgICA9IGlzc2V0KCRtYXRjaGVzWydpZCddKSA/ICRtYXRjaGVzWydpZCddIDogJyc7CgkKCWVjaG8gIk1vZHVsbzpcdFx0JyRtb2R1bG8nXG5Db2xlY2Npw7NuOlx0JyRjb2xlY2Npb24nXG5JZDpcdFx0XHQnJGlkJyI7CgllY2hvICJcblxuXCRtYXRjaGVzID0gIjsKCXZhcl9leHBvcnQoJG1hdGNoZXMpOwp9IGVsc2UgewoJLy8gVVJMIGludsOhbGlkYQp9
Modulo: 'padres'
Colección: 'col'
Id: '8'
$matches = array (
0 => 'http://w...content-available-to-author-only...e.com/padres/col/8',
'modulo' => 'padres',
1 => 'padres',
'coleccion' => 'col',
2 => 'col',
'id' => '8',
3 => '8',
)