Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: str_replace не может осуществить замену
 
 автор: Владимир55   (18.06.2011 в 12:52)   письмо автору
 
 

В тексте есть два вида пробелов - собственно пробел " " и пробел кодом "&nbsp". Причем, они идут в комбинации друг с другом, так что просветы бывают слишком большими. Чтобы исправить дело, хочу привести все пробелы к одному виду. Не удается. Почему-то не исполняется функция

<?php
$primer 
str_replace("&nbsp;"" "$primer);


Тут есть какая-то специфика?

  Ответить  
 
 автор: cheops   (18.06.2011 в 14:20)   письмо автору
 
   для: Владимир55   (18.06.2011 в 12:52)
 

Все должно работать корректно. А что находится в $primer, может его содержимое тут опубликовать, чтобы можно было воспроизвести ситуацию?

  Ответить  
 
 автор: Владимир55   (18.06.2011 в 15:55)   письмо автору
 
   для: cheops   (18.06.2011 в 14:20)
 

<html>
<head>
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Пример</title>
</head>

<body bgcolor="#FFD8B0">

<p style="text-indent: 30px; margin: 0 20px">&nbsp;</p>
<p style="text-indent: 30px; margin: 0 20px">&nbsp;</p>
<p style="text-indent: 30px; margin: 0 20px" align="justify">&nbsp;</p>
<p style="text-indent: 30px; margin: 0 20px" align="justify">
<font face="Arial" size="4"> Хочу обрести свободу в мыслях и поступках, быть независимым человеком.</font></p>
<p style="text-indent: 30px; margin: 0 20px">&nbsp;</p>
<p style="text-indent: 30px; margin: 0 20px">&nbsp;</p>

</body>

</html>


А обработку делал так:
<?php
            $primer 
strip_tags($primer);
            
$primer htmlspecialchars($primer);
            
$primer str_replace("&nbsp;"" "$primer);
            
$primer preg_replace('/ +/'' '$primer); // Удаление повторяющихся пробелов
            
echo "<br> " $primer "<br>";


Получаю:
Пример &nbsp; &nbsp; Хочу обрести свободу в мыслях и поступках, быть независимым человеком. &nbsp; &nbsp;

  Ответить  
 
 автор: cheops   (18.06.2011 в 17:22)   письмо автору
 
   для: Владимир55   (18.06.2011 в 15:55)
 

Ага, дело в том что, после htmlspecialchars() у вас &nbsp; превращается в &amp;nbsp;, оператор str_replace() нужно разместить перед htmlspecialchars().

  Ответить  
 
 автор: Владимир55   (18.06.2011 в 20:24)   письмо автору
 
   для: cheops   (18.06.2011 в 17:22)
 

Спасибо! Сам бы я никогда не догадался...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования