Я пытаюсь удалить лишние пробелы строки, которую я получаю из Интернета, используя file_get_contents(). Я попробовал str_replace() иpreg_replace(), а также поиск, но ни один из них не работал.
Вот мой код:
<?php $html_content = file_get_contents("http://mindcity.sina.com.hk/MC-lunar/daily/2014/12/20141209_b5.html");
$html_content = mb_convert_encoding($html_content, 'UTF-8', 'BIG-5');
$html_content = strip_tags($html_content);
$start_pos = strrpos($html_content, "宜 :");
$end_pos = strrpos($html_content, "凶神宜忌 :") - strlen($html_content);
$good_to_do = substr($html_content, $start_pos, $end_pos);
echo $good_to_do .'<br>';
//remove whitespace of $good_to_do
$good_to_do = str_replace(' : ','*',$good_to_do);
$good_to_do = preg_replace('/^[\pZ\pC]+|[\pZ\pC]+$/u', '', $good_to_do);
$good_to_do = str_replace(array("\r\n", "\r", "\n", "\t", "\0", "\s", "\x0B", "\x20", "\xA0"), '*', $good_to_do);
var_dump( $good_to_do ); ?>
Просто обнаружил, что белое пространство было
при просмотре источника. Таким образом, код просто становится str_replace(' ', '', $html_content);
Делать
$good_to_do = preg_replace('/\s+/', '*', $good_to_do);
Я помещаю '*', потому что это то, что вы хотите заменить? Вы можете поместить там что угодно.
foreach(preg_split('//',$var) as $char){ var_dump(ord($char)); }
где $ var равно $ good_to_do после ТОЛЬКО применения приведенного выше регулярного выражения и последующего размещения вывода.
$good_to_do - str_replace
что минус-
должен быть знаком равенства=