IM Construction d'une API pouvant lire des messages à partir d'une base de données SQL. Je vérifie l'URL avec l'instruction suivante si l'instruction: Ce que je veux, c'est une instruction IF comme celle-ci: Ma fonction entière: p> si ($ URI [0] == "/ chambres / 1 / messages") code>. Le 1 est le numéro de la pièce demandé, mais il y a plus de pièces que "1".
si ($ uri [0] == "/ chambres /" $ thishastobanumber. "/ Messages") Code> P> P> P> P> P> P> P> P> P> J'ai pensé à exploser l'URL sur le "/" mais je ne sais pas dès le début à quel point il y a de barres sous tension dans l'URL. P>
3 Réponses :
Je ne sais pas exactement quel type de données vous recevrez, mais on dirait que vous pouvez utiliser une expression régulière. Par exemple, supposons que $ URI est la chaîne et vous voulez un numéro dans le format: "/ salle / numéro / messages". Vous pouvez utiliser: si le motif s'adapte, $ correspond à [1] contiendra le numéro de pièce. P> Vous pouvez mettre cela dans un if-ele avec: < / p>
Je pense que vous recherchez des expressions régulières.
et preg_match ( Documentation ) est la chose que vous recherchez. P>
Si nous faisons quelque chose comme ceci: p>
if ( ( preg_match( "rooms/([\d]+)/messages", $uri[0], $match ) === 1 ) { if ($_SERVER["REQUEST_METHOD"] === "GET") { //$roomId = match[1]; getMessages($match[1]); } else { header("HTTP/1.0 400"); die("Wrong request method"); } }
Nitpick: Vous avez vos paramètres Preg_Match dans le mauvais sens.
Je m'attendrais à ce que l'URL vienne toujours dans le même format, il faut donc utiliser Alternativement, vous pouvez utiliser regex. Cela vous permettra d'être plus flexible dans l'extraction du numéro de pièce. Quelque exemple de code que vous pouvez utiliser serait: p> pour expliquer, exploser code> devrait être sûr. Vous auriez besoin de déterminer ce que le format était, puis extrayez le nombre de la bonne position.
preg_match code> prendra un modèle de regex et l'appliquera à l'URL et retourne une matrice. des matchs. La regex dans l'exemple recherchera la séquence "salle /" à la suite d'une barre oblique ou au début de votre URL puis suivie d'un ou plusieurs chiffres numériques (qui sont renvoyés dans la matrice) et enfin par une autre barre oblique ou la fin de la chaîne. Les chiffres numériques sont renvoyés comme troisième match. P> p>