str_replace PHP don';不起作用


str_replace PHP don't work

我正在编写以下代码:

$response = "PARCHEGGIO BASILE (Cap.) – Via E. Basile – Cavalcavia Brasa - V.le Regione Siciliana - V. Villagrazia (Barone Scala) – V. Emily Balch - V. Villagrazia - V. dell’Usignolo - V. dell’Allodola - V.le Regione Siciliana - VIA DEL LEVRIERE (Bonagia) (capolinea di transito) - V.dell’ Antilope - V. dell’ Ermellino - V.le Regione Siciliana - V. dell’Allodola - V. dell’Usignolo - V. Villagrazia - V.le Regione Siciliana – svincolo Brasa - Via E. Basile - PARCHEGGIO BASILE (Cap.)";
$response =  str_replace( " – " , "@" , $response );
echo $response;

但结果是:

PARCHEGGIO BASILE (Cap.)@Via E. Basile@Cavalcavia Brasa - V.le Regione Siciliana - V. Villagrazia (Barone Scala)@V. Emily Balch - V. Villagrazia - V. dell’Usignolo - V. dell’Allodola - V.le Regione Siciliana - VIA DEL LEVRIERE (Bonagia) (capolinea di transito) - V.dell’ Antilope - V. dell’ Ermellino - V.le Regione Siciliana - V. dell’Allodola - V. dell’Usignolo - V. Villagrazia - V.le Regione Siciliana@svincolo Brasa - Via E. Basile - PARCHEGGIO BASILE (Cap.)

那么,str_replace就不起作用了。。我哪里错了?

它们是不同的字符,相应地具有0x2d0xe28093(编码为UTF-8)代码。

如果你仔细观察,你甚至可以看到它们的长度不同。

因此,php只是按照您的指示执行:它试图替换子字符串,一旦源字符串中没有条目,它就会保持原样。

要替换所有-,只需在str_replace调用中使用-字符,而不是

有用的链接:

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

您的sting格式不正确,请使用此str_replace代替

$response = str_replace([' – ', ' - '], "@", $response);

因为前一个字符串包括0x2d以及0xe28093-,所以使用不同的unicode字符。