Есть парсер. Он написан в UTF8. Получает строку с другого сайта в 1251.
Далее здесь в парсере пытаюсь убрать из этой строки все неразрывные пробелы (ну и еще кое-какие html эквиваленты). Ничего не получается. Это пробел как был так и есть.
В парсере:
$string = iconv( "CP1251","UTF-8", $string);
$string = str_replace(' ', ' ', $string);
$string = preg_replace('/(\ \;)/', ' ', $string);
Как убрать этот пробел?
Спустя 4 минуты, 46 секунд (12.07.2011 - 15:14) tatti написал(а):
не понимаю, что имеется ввиду под "неразрывный пробел"?
попробуй так
попробуй так
$string = preg_replace('/[\s]/', ' ', $string);
Спустя 58 секунд (12.07.2011 - 15:15) YVSIK написал(а):
А как у вас одна переменная имеет так много значений ??
какое пральное
какое пральное
Спустя 3 минуты, 36 секунд (12.07.2011 - 15:19) Гость_user написал(а):
Люди, вы что? ))
Неразрывный пробел (раздел неразрывный пробел):
Неразрывный пробел
А переменная не имеет много значений, она поступенно обрабатывается и ей присваивается новое значение.
Неразрывный пробел (раздел неразрывный пробел):
Неразрывный пробел
А переменная не имеет много значений, она поступенно обрабатывается и ей присваивается новое значение.
Спустя 4 минуты, 54 секунды (12.07.2011 - 15:24) tatti написал(а):
Гость_user
круто. меняешь пробел на пробел чтоли?
круто. меняешь пробел на пробел чтоли?
Спустя 2 минуты, 2 секунды (12.07.2011 - 15:26) Гость_user написал(а):
Да.
Я ж еще в первом сообщении написал. )
Не в обиду. Не выспались что ли? ))
Я ж еще в первом сообщении написал. )
Не в обиду. Не выспались что ли? ))
Спустя 4 минуты, 58 секунд (12.07.2011 - 15:31) tatti написал(а):
соблюдай режим и будешь непобедим как Джим
Спустя 1 минута, 8 секунд (12.07.2011 - 15:32) Invis1ble написал(а):
попробуй / /s
вобще, это str_replace() решает
вобще, это str_replace() решает
$string = str_replace('& nbsp;', ' ', $string); // без пробела
Спустя 32 минуты, 22 секунды (12.07.2011 - 16:04) Гость_user написал(а):
От зараза...
Не работает.
Str_replace решает, знаю. Но здесь почему-то не работает.
Более того выяснил, что если его убрать, то в получаемой строке все пробелы неразрывные. Т.е. str_replace заменяет их все успешно, но вот один остается всегда... Странно...
Не работает.
Str_replace решает, знаю. Но здесь почему-то не работает.
Более того выяснил, что если его убрать, то в получаемой строке все пробелы неразрывные. Т.е. str_replace заменяет их все успешно, но вот один остается всегда... Странно...
Спустя 9 минут, 39 секунд (12.07.2011 - 16:14) Invis1ble написал(а):
если что-то остается - то значит идет подряд несколько пробелов, тогда только регуляркой
ПС. А htmlspecialchars_decode() не подходит?
$string = preg_replace('#(?:& nbsp;)+#s', ' ', $string); // опять же, без пробела после амперсанда :)
ПС. А htmlspecialchars_decode() не подходит?
Спустя 9 минут, 45 секунд (12.07.2011 - 16:23) Гость_user написал(а):
htmlspecialchars_decode() не подходит, пробовал.
Твой последний вариант тоже на работает. Спасибо за подсказку...
Ну его этот пробел, я логику чуть-чуть подправил, теперь вроде нормально.
Но причины незамены так и не понял, не нашел.
Твой последний вариант тоже на работает. Спасибо за подсказку...
Ну его этот пробел, я логику чуть-чуть подправил, теперь вроде нормально.
Но причины незамены так и не понял, не нашел.
Спустя 14 минут, 6 секунд (12.07.2011 - 16:38) Invis1ble написал(а):
щас сам протестил у себя:
все работает
так что проблема очевидно не в регулярке
$string = 'Hel& nbsp;& nbsp;lo& nbsp;World!';
echo $string . '<br />';
echo preg_replace('#(?:& nbsp;)+#s', ' ', $string);
все работает
так что проблема очевидно не в регулярке
Спустя 1 час, 43 минуты, 32 секунды (12.07.2011 - 18:21) Winston написал(а):
Цитата (Гость_user @ 12.07.2011 - 15:09) |
$string = iconv( "CP1251","UTF-8", $string); |
Где вы видели такую запись? Это не правильно. Вот так нужно
$string = iconv( "WINDOWS-1251","UTF-8", $string);
Спустя 11 минут, 23 секунды (12.07.2011 - 18:32) Invis1ble написал(а):
PHPprogramer
cp1251 - это алиас для windows-1251
cp1251 - это алиас для windows-1251
Спустя 7 месяцев, 17 дней, 22 часа, 2 минуты, 42 секунды (1.03.2012 - 16:35) Гость_Михаил написал(а):
utf8:
или
$content=str_replace("\xC2\xA0"," ",$content);
или
$content = iconv('UTF-8','cp1251',$content);
$content = str_replace(chr(160), chr(32), $content);
$content = iconv('cp1251','UTF-8',$content);
Спустя 22 дня, 21 час, 36 минут, 28 секунд (24.03.2012 - 14:12) Гость_Андрей написал(а):
Цитата (Гость_Михаил @ 1.03.2012 - 13:35) |
$content = str_replace(chr(160), chr(32), $content); |
Вот эту строчку искал часов 6 к ряду
Спасибо огромное!