Je suis tombé sur un bug intéressant en PHP. Fondamentalement, j'ai une expression régulière vue ci-dessous qui fonctionne bien dans un script (Script A) mais ne fonctionne pas quand mis dans une classe et utilisé dans un script (Script B).Expression régulière fonctionne dans un script et pas dans un autre
J'ai testé ce script sur PHP 5.3 et 5.2.
Script A:
http://iamdb.googlecode.com/svn/trunk/testing.php
Script B:
classe regex est utilisé dans: http://iamdb.googlecode.com/svn/trunk/imdb/search/imdb_search_title.class.php
Script appelant: http://iamdb.googlecode.com/svn/trunk/examples/Search_Debug.php
Expression régulière:
"#<br> aka <em>\"([^\"]*)\"</em>(?: -?,? ([^ ]*) (?:<em>\(([^\)]*)\)</em>)*)*#i"
Merci.
Comme demandé, voici quelques exemple de sortie Script B ...
Array
(
[0] => Array
(
)
[1] => Array
(
)
[2] => Array
(
)
[3] => Array
(
)
[INPUT] => <small>(TV series)</small> <br>aka <em>"Hammer Time"</em> - USA <em>(working title)</em>
)
Les touches numérotées sont de l'appel preg_match_all et la clé d'entrée est ajouté par la suite pour montrer la chaîne d'entrée.
Que voulez-vous dire, ne fonctionne pas? Quelle est l'entrée et la sortie de l'appel au membre de la classe? – strager
En note, c'est une mauvaise idée d'essayer d'analyser XML/HTML avec des expressions régulières. –
Vous avez offert de nombreuses alternatives convaincantes. – Andrew