PHP.SU

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

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

> Найдено сообщений: 13
Gerb Отправлено: 02 Ноября, 2019 - 09:37:07 • Тема: Объявить объект внутри другого объекта • Форум: JavaScript & VBScript

Ответов: 1
Просмотров: 368
CODE (javascript):
скопировать код в буфер обмена
  1. var comment = {
  2.         int: function(){
  3.          
  4.         },     
  5.         copyurl(th){
  6.                 data.messeg('Ссылка на сообщение скопирована');                
  7.         }
  8. }


В comment необходимо обратиться к другому объекту data, как сделать так чтобы объект был в поле видимости?
Gerb Отправлено: 15 Октября, 2019 - 01:55:54 • Тема: Запретить выставлять пробел после • Форум: Вопросы новичков

Ответов: 18
Просмотров: 1210
PHP:
скопировать код в буфер обмена
  1.  '#(?<!(?:ul\>|li\>)\])\r\n#i','#\<br/>\s*\</li>#i','#\<br/>\s*\</div>#i','#"\>\s*\<br/>#i','#ul\>\s*\<br/>#i',


Как все это объеденить в
'#(?<!(?:ul\>|li\>)\])\r\n#i'
(Добавление)
'#\<br/>\s*\</li>#i' меняем на '</li>'

То есть не выставлять перенос строки перед закрывающим тегом '</li>'
Аналогично перед </div>
Gerb Отправлено: 15 Октября, 2019 - 00:15:56 • Тема: Запретить выставлять пробел после • Форум: Вопросы новичков

Ответов: 18
Просмотров: 1210
PHP:
скопировать код в буфер обмена
  1. '~\[(right|center|left)=(\d+)] \s* (.+?) \s* \[/\1]~xis'


Увы но такой вариант не работает, если есть вложенные теги

CODE (html):
скопировать код в буфер обмена
  1. [right=50]
  2. [right=50]
  3.  sss
  4. [/right]
  5.  Выравнивание по правому краю
  6. [/right]


Только родителя переводит, дочерний остается в прежнем виде.
Gerb Отправлено: 14 Октября, 2019 - 19:50:19 • Тема: Запретить выставлять пробел после • Форум: Вопросы новичков

Ответов: 18
Просмотров: 1210
Спс, но в таком случаи нет переноса строк совсем

PHP:
скопировать код в буфер обмена
  1. $text = '[List]
  2.     [*]Список 1
  3.     [*]Список 2
  4.     [*]Список 3
  5.     [*]Список 4
  6. [/List]
  7. [right=50]
  8. Выравнивание по правому краю
  9. [/right]
  10.  
  11. [center=100]
  12. Выравнивание по центру
  13. [/center]
  14.  
  15.  
  16. [left=50]
  17. Выравнивание по левому краю
  18. [/left]
  19.  
  20.  
  21. [H3]Заголовок третьего уровня[/H3]
  22.  
  23.  
  24. [H2]Заголовок второго уровня[/H2]';



Можно ли вот это безобразие
PHP:
скопировать код в буфер обмена
  1. '#(?<!(?:ul\>|li\>)\])\r\n#i','#\<br/>\s*\</li>#i','#\<br/>\s*\</div>#i','#"\>\s*\<br/>#i','#ul\>\s*\<br/>#i',
  2.  
  3. '<br/>','</li>','</div>','">','ul>',
  4.  

PHP:
скопировать код в буфер обмена
  1. Привести в одну регулярку
  2. '#(?<!(?:ul\>|li\>)\])\r\n#i',
  3.  
Gerb Отправлено: 14 Октября, 2019 - 03:54:40 • Тема: Запретить выставлять пробел после • Форум: Вопросы новичков

Ответов: 18
Просмотров: 1210
Хелп
Gerb Отправлено: 13 Октября, 2019 - 15:53:23 • Тема: Запретить выставлять пробел после • Форум: Вопросы новичков

Ответов: 18
Просмотров: 1210
CODE (html):
скопировать код в буфер обмена
  1. [List]
  2.       [*]Список
  3.       [*]Список
  4. [/List]
  5. [right=50]
  6.   Выравнивание по правому краю каю
  7. [/right]
  8. [center=100]
  9.   Выравнивание по центру
  10. [/center]
  11. [left=50]
  12.   Выравнивание по левому каю
  13. [/left]
  14. [H3]Заголовок третьего уровня[/H3]
  15. [H2]Заголовок второго уровня[/H2]
  16.  


Результат
CODE (html):
скопировать код в буфер обмена
  1. <ul>
  2.      <li><i class="fad fa-circle"></i>Список</li>
  3.      <li><i class="fad fa-circle"></i>Список</li>
  4. </ul>
  5. <div class="p_right rl50">  Выравнивание по правому краю каю</div>
  6. <div class="p_center rl100">  Выравнивание по центру</div>
  7. <div class="p_left rl50">  Выравнивание по левому каю</div>
  8. <h3>Заголовок третьего уровня</h3>
  9. <h2>Заголовок второго уровня</h2>


Или
CODE (html):
скопировать код в буфер обмена
  1. [List]
  2.       [*]Список
  3.       [*]Список
  4. [/List]
  5.  
  6. [right=50]
  7.   Выравнивание по правому краю каю
  8. [/right]
  9.  
  10. [center=100]
  11.   Выравнивание по центру
  12. [/center]
  13.  
  14. [left=50]
  15.   Выравнивание по левому каю
  16. [/left]
  17.  
  18. [H3]Заголовок третьего уровня[/H3]
  19.  
  20. [H2]Заголовок второго уровня[/H2]


Результат:
CODE (html):
скопировать код в буфер обмена
  1. <ul>
  2.     <li><i class="fad fa-circle"></i>Список</li>
  3.     <li><i class="fad fa-circle"></i>Список</li>
  4. </ul>
  5. <br>
  6. <div class="p_right rl50">  Выравнивание по правому краю каю</div>
  7. <br>
  8. <div class="p_center rl100">  Выравнивание по центру</div>
  9. <br>
  10. <div class="p_left rl50">  Выравнивание по левому каю</div>
  11. <br>
  12. <h3>Заголовок третьего уровня</h3>
  13. <br>
  14. <h2>Заголовок второго уровня</h2>
Gerb Отправлено: 12 Октября, 2019 - 22:54:38 • Тема: Запретить выставлять пробел после • Форум: Вопросы новичков

Ответов: 18
Просмотров: 1210
Хелп Огорчение
Gerb Отправлено: 11 Октября, 2019 - 22:22:06 • Тема: Запретить выставлять пробел после • Форум: Вопросы новичков

Ответов: 18
Просмотров: 1210
PHP:
скопировать код в буфер обмена
  1. $text = preg_replace(["#^\r\n#", '#^(?:\s|<br/>)+|(?:\s|<br/>)+$#',
  2.                                  '#\[List\](?>\s*\[\*\])*(.+?)(\[\*\]\s)*\[\/List\]#is',
  3.                                  '#\[\*\]#is',
  4.                                  "#\[h2\](.+?)\[\/h2\]#is",
  5.                                  "#\[h3\](.+?)\[\/h3\]#is",
  6.                                  "#\[QUOTE\](.+?)\[\/QUOTE\]#is",
  7.                                  "#\[left=([0-9]+)\](.+?)\[\/left\]#is",
  8.                                  "#\[right=([0-9]+)\](.+?)\[\/right\]#is",
  9.                                  "#\[center=([0-9]+)\](.+?)\[\/center\]#is",
  10.                                  "#\[size=([0-9]+)\](.+?)\[\/size\]#is",
  11.                                  '#(?<!(?:ul\>|li\>)\])\r\n#i','#\<br/>\s*\</li>#i','#\<br/>\s*\</div>#i','#"\>\s*\<br/>#i','#ul\>\s*\<br/>#i'
  12.                                 ], [
  13.                                  '', '',
  14.                                 '<ul><li><i class=\"fad fa-circle\"></i>$1</li></ul>',
  15.                                 '</li><li><i class=\"fad fa-circle\"></i>',
  16.                                 "<h2>$1</h2>",
  17.                                 "<h3>$1</h3>",
  18.                                 "<blockquote><i class=\"fad fa-quote-left\"></i>$1<i class=\"fad fa-quote-right\"></i></blockquote>",
  19.                                 "<div class=\"p_left rl$1\">$2</div>",
  20.                                 "<div class=\"p_right rl$1\">$2</div>",
  21.                                 "<div class=\"p_center rl$1\">$2</div>",
  22.                                 "<span style=\"font-size:$1px;\">$2</span>",
  23.                                 '<br/>','</li>','</div>','">','ul>',
  24.                                 ], trim($text, ' '));


В данный момент у меня реализовано следующим образом. Мне это безобразие бы убрать
PHP:
скопировать код в буфер обмена
  1.  ,'#\<br/>\s*\</li>#i','#\<br/>\s*\</div>#i','#"\>\s*\<br/>#i','#ul\>\s*\<br/>#i'

Приходится таким образом править перенос где его недолжно быть.
Нет бы сразу указать в

Что нет необходимости ставить тег перед определенными тегами и за определенными тегами.
Gerb Отправлено: 10 Октября, 2019 - 18:12:06 • Тема: Запретить выставлять пробел после • Форум: Вопросы новичков

Ответов: 18
Просмотров: 1210
В тексте присутствуют теги перед которыми не нужно выставлять тег переноса строки, 2 условия работают, если добавить еще один. В таком случаи стирает текст полностью.


PHP:
скопировать код в буфер обмена
  1. $text = preg_replace([ '#\[List\](?>\s*\[\*\])*(.+?)(\[\*\]\s)*\[\/List\]#is',
  2.                                  '#\[\*\]#is',
  3.                                   '#(?<!(?:ul\>|li\>)\])\r\n#i'
  4.                                 ], [
  5.                                   '<ul><li><i class=\"fad fa-circle\"></i>$1</li></ul>',
  6.                                   '</li><li><i class=\"fad fa-circle\"></i>',
  7.                                   '<br/>'
  8.                                  ], trim($text, ' '));
  9.  


Работает, нет замены переноса строки перед тегами <ul> и <li>, необходимо добавить исключение для '<div>'.

Как составить такое правило на замену '#(?<!(?:ul\>|li\>)\])\r\n#i', которое будет выполнять замену переноса строки за исключением.
-Не менять перенос строки если перед переносом строки прописан тег <ul либо <li либо <div
-Точно также не выставлять перенос строки после тегов </ul> </li> и </div>
Gerb Отправлено: 10 Октября, 2019 - 17:59:26 • Тема: Вытащить ссылку и текст ссылки • Форум: Вопросы новичков

Ответов: 3
Просмотров: 374
Спасибо
Gerb Отправлено: 09 Октября, 2019 - 21:04:54 • Тема: Запретить выставлять пробел после • Форум: Вопросы новичков

Ответов: 18
Просмотров: 1210
Блин, так в чем дело? Хм
Gerb Отправлено: 09 Октября, 2019 - 05:15:09 • Тема: Запретить выставлять пробел после • Форум: Вопросы новичков

Ответов: 18
Просмотров: 1210


Не понимаю, нет замены переноса строки после <ul> и <li>
Но если добавить третье условие после которого не нужно выставлять пробел, после <div>
PHP:
скопировать код в буфер обмена
  1. '#(?<!(?:ul\>|li\>|div\>)\])\r\n#i'

Весь текст стирает, почему?
Gerb Отправлено: 09 Октября, 2019 - 04:01:45 • Тема: Вытащить ссылку и текст ссылки • Форум: Вопросы новичков

Ответов: 3
Просмотров: 374
PHP:
скопировать код в буфер обмена
  1. $text = "
  2.    <a href='/'>Текст</a>
  3.    <a href='/reviews/'>Текст</a>
  4.    <a href='https://site.ru/'>Мой сайт</a>
  5.    <a href='https://site.ru/'>https://site.ru/ssfd...</a>";
  6.    
  7. $text = preg_replace_callback('# #siu', function($m){
  8.    
  9.        print_r($m[0]);
  10.        print_r($m[1]);
  11.                    
  12. }, $text);


Как верно составить регулярное выражение, чтобы вытащить адрес ссылки и текст?

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB