2 votes

L'explosion ne fonctionne pas correctement avec le dash

Nous avons cette chaîne : " L'agent de sécurité des tunnels - PARTIE 1 "et nous voulons en faire partie à deux :

  1. Le responsable de la sécurité des tunnels
  2. 1° PARTE

Nous ne sommes pas en mesure de les obtenir en utilisant explode() sur - char

Nous avons déjà vu ce mais aucune de ces réponses n'a fonctionné pour nous.

Nous avons essayé à l'avant avec javascript mais sans résultats positifs.

Comment pouvons-nous le réparer ? Pourrait-il s'agir d'un problème de carbonisation ? (actuellement ISO-859-1 et nous ne pouvons pas le changer)

3voto

RomanPerekhrest Points 54365

Il y a un symbole de tiret "atypique" dans votre chaîne, il s'appelle Caractère Unicode "EN DASH" (U+2013) .
Remplacer it par it's utf-8 équivalent, alors, vous serez en mesure de diviser facilement la chaîne :

$str = "Il Responsabile della Sicurezza nelle gallerie – 1° PARTE";
$endash = html_entity_decode('–', ENT_COMPAT, 'UTF-8');

$str = str_replace($endash, '-', $str);
print_r(explode("-",$str));

Le résultat :

Array
(
    [0] => Il Responsabile della Sicurezza nelle gallerie 
    [1] =>  1° PARTE
)

http://www.fileformat.info/info/unicode/char/2013/index.htm

1voto

Sukhwinder Gill Points 2613

Le personnage avec lequel vous explosez n'est pas Dash.

Copiez et collez le caractère et essayez ensuite.

Code corrigé :

<?php
$str = 'Il Responsabile della Sicurezza nelle gallerie – 1° PARTE';
$arr = explode('–', $str);
echo '<pre>';print_r($arr);echo '</pre>';
?>

La sortie que je reçois :

Array
(
 [0] => Il Responsabile della Sicurezza nelle gallerie 
 [1] =>  1° PARTE
)

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