4 votes

Équivalent PHP de la méthode de séparation des chaînes de caractères de JavaScript

Je travaille sur JavaScript :

<script type="text/javascript">
    var sURL = "http://itunes.apple.com/us/app/accenture-application-for/id415321306?uo=2&mt=8&uo=2";
    splitURL = sURL.split('/');
    var appID = splitURL[splitURL.length - 1].match(/[0-9]*[0-9]/)[0];
    document.write('<br /><strong>Link Lookup:</strong> <a href="http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/wa/wsLookup?id=' + appID + '&country=es" >Lookup</a><br />');
</script>

Ce script prend l'ID numérique et me donne 415321306.

Ma question est donc de savoir comment je peux faire la même chose mais en utilisant PHP.

Je vous prie d'agréer, Madame, Monsieur, l'expression de mes salutations distinguées.

12voto

Surreal Dreams Points 12016

Utilisez la fonction explode() au lieu de .split().

splitURL = sURL.split('/');  //JavaScript

devient

$splitURL = explode('/', $sURL);  //PHP

Une utilisation preg_match() au lieu de .match().

$appID = preg_match("[0-9]*[0-9]", $splitURL);

Je ne comprends pas très bien ce que vous faites avec la longueur de la chaîne, mais vous pouvez obtenir des sous-chaînes en php avec substr() .

5voto

drudge Points 11479

Qui a besoin de regex ?

<?php
    $sURL = "http://itunes.apple.com/us/app/accenture-application-for/id415321306?uo=2&mt=8&uo=2";
    $appID = str_replace('id','',basename(parse_url($sURL, PHP_URL_PATH)));
    echo $appID; // output: 415321306
?>

3voto

dynamic Points 16778
preg_match("/([0-9]+)/",$url,$matches);
print_r($matches);

1voto

Arve Points 3306

1voto

Javascript split peut également être utilisé pour convertir une chaîne de caractères en un tableau de caractères (argument vide) et le premier argument peut être une RegExp.

/*

Example 1

This can be done with php function str_split();

*/

var str = "Hello World!"

str.split('');

H,e,l,l,o, ,W,o,r,l,d,!

/*

Example 1

This can be done with php function preg_split();

*/

var str = " \u00a0\n\r\t\f\u000b\u200b";

str.split('');

, , , , ,,,​

De l'Ecma-262 Renvoie un objet de type tableau dans lequel subst de la conversion de cet objet en chaîne ont été stockées. L'objet sont déterminées en recherchant de gauche à droite les occurrences de occurrences du séparateur ; ces occurrences ne font pas partie d'une chaîne de caractères dans le tableau retourné, mais servent à diviser la valeur de la chaîne. mais servent à diviser la valeur de la chaîne de caractères. [ ] peut être un objet RegExp (c'est-à-dire un objet dont la propriété interne [[Class]] est "RegExp" ; c'est-à-dire un objet dont la propriété interne [[Class]] est "RegExp"). est "RegExp" ; voir 15.10). La valeur du séparateur peut être une chaîne vide, une expression régulière vide, ou une expression régulière qui peut correspondre à une chaîne vide. Dans ce cas, le séparateur ne Dans ce cas, le séparateur ne correspond pas à la sous-chaîne vide au début ou à la fin de la chaîne d'entrée. ni à la fin de la chaîne d'entrée, ni à la fin de la chaîne de séparation précédente. de la précédente correspondance du séparateur. (Par exemple, si le séparateur est la chaîne la chaîne vide, la chaîne est divisée en caractères individuels ; la longueur du tableau de résultats est égale à la longueur de la chaîne, et chaque sous-chaîne contient un caractère). Si le séparateur est une une expression régulière, seule la première correspondance à une position donnée de la chaîne cette chaîne est prise en compte, même si un retour en arrière pourrait donner un résultat de une correspondance de sous-chaîne non vide à cette position. (Par exemple, "ab".split(/a*?/) évalue le tableau ["a", "b"], tandis que "ab".split(/a*/) évalue le tableau["", "b"]). Si l'objet this est (ou se convertit en) une chaîne vide, le résultat dépend de la capacité de peut correspondre à la chaîne vide. S'il le peut, le tableau de résultats ne contient aucun élément. Sinon, le tableau de résultats contient un élément qui est la chaîne vide. Si le séparateur est une expression régulière qui contient des parenthèses capturantes, alors chaque fois que séparateur, les résultats (y compris les résultats indéfinis) de l'expression régulière des parenthèses capturantes sont épissés dans le tableau de sortie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X