爆炸不能与破折号一起正常工作
Explode not working properly with dash
我们有这个字符串:“Il Responsabile della Sicurezza nelle gallerie – 1° PARTE”,我们想要得到它的两个部分:
- Il Responsabile della Sicurezza nelle gallerie
- 1° PARTE
我们无法在 – char
上使用 explode()
获取它们
我们已经看过 this 但每个答案都不适合我们。
我们已经尝试在前端使用 javascript 但没有得到积极的结果。
我们该如何解决?会不会是 charsted 的问题?(目前是 ISO-859-1,我们无法更改)
你爆炸的角色不是破折号。
复制并粘贴字符,然后尝试。
更正代码:
<?php
$str = 'Il Responsabile della Sicurezza nelle gallerie – 1° PARTE';
$arr = explode('–', $str);
echo '<pre>';print_r($arr);echo '</pre>';
?>
我得到的输出:
Array
(
[0] => Il Responsabile della Sicurezza nelle gallerie
[1] => 1° PARTE
)
您的字符串中有 "atypical" 破折号,称为 Unicode 字符 'EN DASH' (U+2013).
将其替换为 utf-8 等效项,然后,您将可以轻松拆分字符串:
$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));
输出:
Array
(
[0] => Il Responsabile della Sicurezza nelle gallerie
[1] => 1° PARTE
)
我尝试了你所有的解决方案,它们都在我的数据库查询中部分起作用,所以,我尝试在一个函数中使用它们
我希望这有助于获得更好的全球解决方案。
该函数将检查分解是否有效以及向量的索引是否大于零。如果不存在,它将尝试另一种方法来检查 simbol
function get_separated_title($post_title) {
$repared = str_replace('-', '-', $post_title);
$titulo = explode("-", $repared);
if (!isset($titulo[1])) {
$raw = filter_var($post_title, FILTER_SANITIZE_STRING);
$repared = str_replace('–', '-', $raw);
$titulo = explode("-", $repared);
if (!isset($titulo[1])) {
mb_internal_encoding("UTF-8");
$endash = html_entity_decode('–', ENT_COMPAT, 'UTF-8');
$repared = str_replace($endash, '-', $raw);
$titulo = explode("-", $repared);
}
}
return $titulo;
}
我们有这个字符串:“Il Responsabile della Sicurezza nelle gallerie – 1° PARTE”,我们想要得到它的两个部分:
- Il Responsabile della Sicurezza nelle gallerie
- 1° PARTE
我们无法在 – char
上使用explode()
获取它们
我们已经看过 this 但每个答案都不适合我们。
我们已经尝试在前端使用 javascript 但没有得到积极的结果。
我们该如何解决?会不会是 charsted 的问题?(目前是 ISO-859-1,我们无法更改)
你爆炸的角色不是破折号。
复制并粘贴字符,然后尝试。
更正代码:
<?php
$str = 'Il Responsabile della Sicurezza nelle gallerie – 1° PARTE';
$arr = explode('–', $str);
echo '<pre>';print_r($arr);echo '</pre>';
?>
我得到的输出:
Array
(
[0] => Il Responsabile della Sicurezza nelle gallerie
[1] => 1° PARTE
)
您的字符串中有 "atypical" 破折号,称为 Unicode 字符 'EN DASH' (U+2013).
将其替换为 utf-8 等效项,然后,您将可以轻松拆分字符串:
$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));
输出:
Array
(
[0] => Il Responsabile della Sicurezza nelle gallerie
[1] => 1° PARTE
)
我尝试了你所有的解决方案,它们都在我的数据库查询中部分起作用,所以,我尝试在一个函数中使用它们
我希望这有助于获得更好的全球解决方案。
该函数将检查分解是否有效以及向量的索引是否大于零。如果不存在,它将尝试另一种方法来检查 simbol
function get_separated_title($post_title) {
$repared = str_replace('-', '-', $post_title);
$titulo = explode("-", $repared);
if (!isset($titulo[1])) {
$raw = filter_var($post_title, FILTER_SANITIZE_STRING);
$repared = str_replace('–', '-', $raw);
$titulo = explode("-", $repared);
if (!isset($titulo[1])) {
mb_internal_encoding("UTF-8");
$endash = html_entity_decode('–', ENT_COMPAT, 'UTF-8');
$repared = str_replace($endash, '-', $raw);
$titulo = explode("-", $repared);
}
}
return $titulo;
}