Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: str_replace

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Замена
Dinir102
Отправлено: 31 Января, 2013 - 20:21:33
Post Id



Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Всем привет. Вот решил сделать замену определённых символов на <span> окрашивающий впереди стоящий текст. Но что-то не получается.

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $text="§0Обычнй текст, §6чего на него смотреть?"
  4.  
  5. $colors=array(
  6. "§0","§1","§2","§3","§4","§5","§6","§7","§8","§9","§a","§b","§c","§d","§e","§f"
  7. );
  8. $htmlcolors=array(
  9. "<span style='color:#000000;'>",
  10. "<span style='color:#0000BF;'>",
  11. "<span style='color:#00BF00;'>",
  12. "<span style='color:#00BFBF;'>",
  13. "<span style='color:#BF0000;'>",
  14. "<span style='color:#BF00BF;'>",
  15. "<span style='color:#BFBF00;'>",
  16. "<span style='color:#BFBFBF;'>",
  17. "<span style='color:#404040;'>",
  18. "<span style='color:#4040FF;'>",
  19. "<span style='color:#40FF40;'>",
  20. "<span style='color:#40FFFF;'>",
  21. "<span style='color:#FF4040;'>",
  22. "<span style='color:#FF40FF;'>",
  23. "<span style='color:#FFFF40;'>",
  24. "<span style='color:#FFFFFF;'>"
  25. );
  26.  
  27. $textrepl=str_ireplace($colors,$htmlcolors,$text);
  28. echo $textrepl;
  29.  


Помогите пожалуйста. Заранее благодарен Закатив глазки

P.S. было написано class="color... т.к. писал всё поздно ночью... исправил

(Отредактировано автором: 01 Февраля, 2013 - 05:06:20)

 
 Top
KingStar
Отправлено: 31 Января, 2013 - 20:29:37
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




PHP:
скопировать код в буфер обмена
  1. $trans = array
  2. (
  3.    "§0" => "<span class='color:#000000;'>",
  4.    ...
  5.    ...
  6.    "§f" => "<span class='color:#FFFFFF;'>"
  7. );
  8.  
  9. $text="§0Обычнй текст, §6чего на него смотреть?";
  10.  
  11. echo strtr($text, $trans);


-----
То что программа работает, не означает что она написана правильно!
 
 Top
OrmaJever Модератор
Отправлено: 31 Января, 2013 - 22:03:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




как бы во-первых не class="color:...", а style="color:...", во-вторых спаны ещё и закрывать бы надо.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DeepVarvar Супермодератор
Отправлено: 31 Января, 2013 - 22:31:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




OrmaJever пишет:
спаны ещё и закрывать бы надо
По стандарту это валидно:
CODE (html):
скопировать код в буфер обмена
  1. <div class="aaa">
  2.   <p>Привет ребята
  3.   <p>А это второй абзац
  4. <div class="bbb">
  5.   <ul>
  6.     <li>AAA
  7.     <li>BBB
  8.     <li>
  9.       <span class="zzz">CCC
  10. <div class="ccc">
  11.   <p>Вот так вот
 
 Top
OrmaJever Модератор
Отправлено: 31 Января, 2013 - 22:47:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




DeepVarvar пишет:
По стандарту это валидно:

1) хочу увидеть сылку с w3c
2) ладно стандарт, как браузеру понять такую строку?
CODE (htmlphp):
скопировать код в буфер обмена
  1. <span style="color:red">text1
  2. <span style="color:blue">text2</span>
  3. text3
какой цвет будет у text3 и почему?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DelphinPRO
Отправлено: 31 Января, 2013 - 23:06:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




DeepVarvar пишет:
По стандарту это валидно:

нет.
есть список тегов, которые необязательно закрывать, но <span>, <div>, <ul> к ним не относятся.
<li>, <p>, <td>, <tr> и еще около 15 можно не закрывать. все не вспомню по памяти.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
DeepVarvar Супермодератор
Отправлено: 31 Января, 2013 - 23:15:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




А у меня информация что можно не закрывать любые, но нельзя комбинировать так, как показал OrmaJever, иначе не будет распарсено. Т.е. или не закрывай нигде, или закрывай везде.
 
 Top
DelphinPRO
Отправлено: 31 Января, 2013 - 23:16:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




ну вот еще ссылка на стандарт, для интересующихся
http://www[dot]w3[dot]org/TR/html5/synta[dot][dot][dot]ml#optional-tags


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
OrmaJever Модератор
Отправлено: 31 Января, 2013 - 23:41:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




DeepVarvar пишет:
А у меня информация что можно не закрывать любые, но нельзя комбинировать так, как показал OrmaJever, иначе не будет распарсено.

Распарсено то будет, современые браузеры вобще по-моему парсят всё что можно и нельзя, и в неопределёных ситуациях действуют так как им угодно, но вот в консоли ошибок он всё выскажет.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DelphinPRO
Отправлено: 01 Февраля, 2013 - 00:12:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




OrmaJever пишет:
Распарсено то будет, современые браузеры вобще по-моему парсят всё что можно и нельзя

да бросьте вы! попробуйте не закрыть <div> в более-менее сложном макете - страница разъедется, мама не горюй. Хотя, конечно, можно сказать, что страница распарсилась - браузер в любом случае ее покажет Улыбка


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB