PHP.SU

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

Страниц (22): В начало « ... 3 4 5 6 [7] 8 9 10 11 ... » В конец

> Найдено сообщений: 329
MAXUS Отправлено: 08 Ноября, 2014 - 18:50:07 • Тема: Разбить слово на слоги. Переписать в функцию. • Форум: Напишите за меня, пожалуйста

Ответов: 1
Просмотров: 66
hiddensy пишет:
Всем привет.
Помогите переписать javascript в функцию на php, что-бы на выходе было слово разбитое на слоги.


Нет смысла переписывать то, что не работает:

спе-цо-деж-да
пя-тиг-рам-мо-вый
MAXUS Отправлено: 08 Ноября, 2014 - 18:29:06 • Тема: Вытащить из предложения все слова • Форум: Вопросы новичков

Ответов: 18
Просмотров: 676
LIME пишет:

\w{4,}\W


\W не надоУлыбка Ну, потому что не надоУлыбка Тебе в результат будет подтягиваться один не_символ.
MAXUS Отправлено: 08 Ноября, 2014 - 18:26:01 • Тема: Вытащить из предложения все слова • Форум: Вопросы новичков

Ответов: 18
Просмотров: 676
LIME пишет:
слова из 4 символов твоё не находит


Еще раз. Задача: "Нужно вытащить из предложения все слова больше 4-х букв"...
MAXUS Отправлено: 08 Ноября, 2014 - 18:24:00 • Тема: Вытащить из предложения все слова • Форум: Вопросы новичков

Ответов: 18
Просмотров: 676
LIME пишет:
не поленился проверил
ты прав
чет я не догнал тут...завтра пересмотрю
сорь за лишний шум
(Добавление)
но 5 на 4 надо сменить
слова из 4 символов твоё не находит


На самом деле и я тупанул. Можно еще проще:

/\w{5,}/sui

Т.е. итог:

PHP:
скопировать код в буфер обмена
  1. $string="цветы,мешки, мешки вертикальные, мешки горизонтальные,вершки и корешки, вершки325, стол, столы накрытые, столы взлохмаченные";
  2. preg_match_all("/\w{5}\w*/sui",$string,$keywords);
  3. $keywords=array_unique($keywords[0]);
  4. echo "<pre>";
  5. print_r($keywords);
  6. echo "</pre>";
MAXUS Отправлено: 08 Ноября, 2014 - 18:15:30 • Тема: Вытащить из предложения все слова • Форум: Вопросы новичков

Ответов: 18
Просмотров: 676
LIME пишет:
нет нет и еще раз нет
описанные проблемы касаются именно твоей регулярки
присмотрись еще раз
если я ошибся пиши


Или я недогоняю, или ты, или одно из двух.

"0 - будут выбраны только четко размером 5" Нет. Будут выбраны все слова более 4-х букв.
"1 - выбраны будут только если следом идет символ слова" Нет. Будут выбраны ВСЕ слова, которые состоят из \w, т.е. символ, цифра или подчеркивание.
"2 - если слово длиной в 12 символов будут выбраны обе части этого слова(оно будет разбито что неправильно)" Нет. Будет выбраны только слова более 4-х букв. Никаких разбивок на 2 слова не будет.
"3 - если слово короче 12 но длиннее 6 то будут выбраны только первые 5 символов(5 а не 4)" Нет. Будет выбрано все слово.

"не проверял но не думаю что есть ошибки в моей регулярке"
Ты мою лучше проверь.

\w{5}\w*/sui

Будут выбраны все слова, которые состоят из \w{5} пяти символов и еще \w*, т.е. пяти символов+любого количества символов. И все равно в конце, середине или начале строки.
MAXUS Отправлено: 08 Ноября, 2014 - 17:59:13 • Тема: Вытащить из предложения все слова • Форум: Вопросы новичков

Ответов: 18
Просмотров: 676
LIME пишет:

MAXUS спасибо? нет? ))


Ты прости, но я из сказанного тобой нифига не понял. Ты решаешь свои ошибки. Регулярка у меня:

/\w{5}\w*/sui

Присмотрись внимательно. Все, что ты сказал, ее не касается. Она работает, как надо. А ты ее обрезал и начал решать возникшие вследствие этого проблемыУлыбка
(Добавление)
lex555 пишет:
Нужно вытащить из предложения все слова больше 4-х букв и записать их каждое в отдельное поле бд.


Вощем, в итоге так:
PHP:
скопировать код в буфер обмена
  1. $string="цветы,мешки, мешки вертикальные, мешки горизонтальные,вершки и корешки, вершки325, стол, столы накрытые, столы взлохмаченные";
  2. preg_match_all("/\w{5}\w*/sui",$string,$keywords);
  3. $keywords=array_unique($keywords[0]);
  4. echo "<pre>";
  5. print_r($keywords);
  6. echo "</pre>";


Нормально выдирает ключевые слова более 4-х символов, при этом они не дублируются.
MAXUS Отправлено: 08 Ноября, 2014 - 17:41:22 • Тема: Вытащить из предложения все слова • Форум: Вопросы новичков

Ответов: 18
Просмотров: 676
LIME пишет:
\W\w{4,}\W
из середины таскать не будем же?
и пожалуй более 4 символов нам тоже нужны
(Добавление)
MAXUS извини))
я тоже не так давно поднатаскался))


Я там на 5 исправил. А насчет из середины. В каком варианте string такое возможно?

Задача была: "вытащить из предложения все слова больше 4-х букв"
(Добавление)
Единственное, что я бы еще сделал с массивом - это убрал повторяющиеся значения...
MAXUS Отправлено: 08 Ноября, 2014 - 17:33:52 • Тема: Вытащить из предложения все слова • Форум: Вопросы новичков

Ответов: 18
Просмотров: 676
PHP:
скопировать код в буфер обмена
  1. $string="asdasd, asdasd,asdasd7987asd,987a9s8d 987asd a9s87d as7d6a8s6da8sd7 0a9";
  2. preg_match_all("/\w{5}\w*/sui",$string,$keywords);
  3. echo "<pre>";
  4. print_r($keywords);
  5. echo "</pre>";


Если уж пользоваться регуляркой, то так - самый простой вариант.
MAXUS Отправлено: 08 Ноября, 2014 - 17:25:58 • Тема: Наипростейший вариант... • Форум: Вопросы новичков

Ответов: 7
Просмотров: 276
LIME пишет:
постановка задачи наталкивает на мысль что ее не должно быть
MAXUS это обычный вопрос
подходит для 75% тем


Это была ирония. Я просто не представляю задачи, в которой необходимо иметь массив с годами от 1900 до 2100.
MAXUS Отправлено: 08 Ноября, 2014 - 14:43:54 • Тема: Наипростейший вариант... • Форум: Вопросы новичков

Ответов: 7
Просмотров: 276
Weber пишет:
Точнее сказать, сделать все остальные ячейки пустыми. Оставить только 5 заполнение.


Задам необычный вопрос... А зачем?
MAXUS Отправлено: 08 Ноября, 2014 - 10:08:33 • Тема: Замена символов в URL • Форум: Регулярные выражения

Ответов: 7
Просмотров: 650
moroz11 пишет:
Нужно заменять символы в полученном URL после последнего тире на переменную.


PHP:
скопировать код в буфер обмена
  1. $redi = 'http://test.com/monitor/sadasdasd-23-0-345345435';
  2. // $redi = 'http://test.com/monitor/sadasdasd-23-0-';
  3.  
  4. $sub = 42;
  5. $default = 56;
  6.  
  7. $one = explode('-',$redi);
  8. $one[count($one)-1] = ($one[count($one)-1])?$sub:$default;
  9. $one = implode('-',$one);
  10.  
  11. $two = preg_replace('/-[^-]*$/', '-'.$sub, $redi);
  12.  
  13. $three =  substr_replace($redi,$sub,strrpos($redi,'-')+1);
  14.  
  15. echo '$redi ==  ' . $redi . "<br />";
  16. echo '$one == ' . $one . "<br />";
  17. echo '$two == ' . $two . "<br />";
  18. echo '$three == ' . $three . "<br />";


Три способа. Если раскомментировать вторую строку, то будет видно, что даже если в конце после тире пусто, то все равно произойдет замена. В первом способе сделана проверка на наличие символов после последнего тире. Если после тире url обрывается, то будет подставлено 56 (default), если после тире есть символы, то будет подставлено 42(sub).

Смысл в том, что регулярка - не единственный способ для такой простой задачи. И это отнюдь не все варианты, которыми можно представленную задачу выполнить.
MAXUS Отправлено: 03 Ноября, 2014 - 05:18:12 • Тема: Замкнутый массив? • Форум: Напишите за меня, пожалуйста

Ответов: 8
Просмотров: 107
RobinBad пишет:
Уважаемые гуру, стоит нетривиальная задача:
допустим есть массив из 30 позиций, и при различных входящих параметрах, из него должна производиться выборка последовательных 7 позиций. Проблема начинается тогда, когда первая позиция допустим должна браться из ключа 28, т.е. выбраться должны ключи:
28, 29, 30, 0, 1, 2, 3

Подскажите как это решить красиво, без километра кода? Спасибо


Прикольная задачка.

PHP:
скопировать код в буфер обмена
  1. $array=array(
  2.         0=>0,
  3.         1=>1,
  4.         2=>2,
  5.         3=>3,
  6.         10=>10,
  7.         11=>11,
  8.         12=>12,
  9.         13=>13,
  10.         '20'=>20,
  11.         21=>21,
  12.         22=>22,
  13.         '23'=>23,
  14.         29=>29,
  15.         30=>30
  16. );
  17. function get($array,$from_key,$number_of_elements){
  18.         $number_of_elements=(count($array)>$number_of_elements)?$number_of_elements:count($array);
  19.         $sample=array_slice($array,array_search($from_key,array_keys($array)),$number_of_elements,true);
  20.         if(count($sample)<$number_of_elements) $sample=$sample+array_slice($array,0,$number_of_elements-count($sample),true);
  21.         return $sample;
  22. }
  23. echo '<pre>';
  24. print_r(get($array,'23',7));
  25. echo '</pre>';


Кидаешь в функцию get() массив, ключ, с которого начинать выборку, и количество требуемых элементов. Причем массив может быть и ассоциативным, а ключ, соответственно, строкой. Вернет массив с элементами, начиная с ключа, длиной в количество требуемых элементов. В том числе дополнит его элементами из начала. В том числе если количество требуемых элементов больше, чем длина массива, то не будет повторять значения.
(Добавление)
Подправил чуть, чтобы исходные ключи сохранялись.
MAXUS Отправлено: 01 Ноября, 2014 - 22:54:58 • Тема: Option в javascript • Форум: JavaScript & VBScript

Ответов: 7
Просмотров: 1415
usa-1500 пишет:
Решил попробовать создать вторую форму с метками и вывести. Никак не выводит form2. Что нужно исправить в коде чтобы вывело?


CODE (html):
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE HTML>
  3.  
  4. <meta charset="utf-8">
  5. <title>SELECT</title>
  6. </head>
  7. <body>
  8. <form name="form">
  9. <select name="genre" multiple>
  10. <option value="blues" selected>Мягкий блюз</option>
  11. <option value="rock" selected>Жёсткий рок</option>
  12. <option value="classic" selected>Классика</option>
  13. </select>
  14. </form>
  15. <br>
  16. <form name="form2">
  17. <select name="music" multiple>
  18. <option value="executor" selected>Исполнитель</option>
  19. <option value="nationality" selected>Национальность</option>
  20. <option value="place" selected>Место проведения</option>
  21. </select>
  22. </form>
  23.  
  24. <script>
  25.  
  26. var forms = document.getElementsByTagName('form');
  27.  
  28. var select = forms[0].elements.genre;
  29. for (var i=0; i<select.options.length; i++) {
  30.         if(select.options[i].selected) document.writeln(select.options[i].value);
  31. }
  32. document.writeln('<br />');
  33.  
  34. var select = forms[1].elements.music;
  35.  
  36. for (var i=0; i<select.options.length; i++) {
  37.         if(select.options[i].selected) document.writeln(select.options[i].value);
  38. }
  39. </script>
  40.  
  41. </body>
  42. </html>
  43.  
MAXUS Отправлено: 01 Ноября, 2014 - 22:21:48 • Тема: не правильно записывает инфу в бд • Форум: Программирование на PHP

Ответов: 1
Просмотров: 317
zloy dyx пишет:
Ребят после замены кодировки сайта на ютф8 в бд пишуться русские буквы в бд крякозябрами и естественно крякозябры от туда и читаються.... В чём может быть проблема? В дампе бд всю кодировку заменил на ютф8 Не понял Я думаю что нада както задать кодировку инфе которая идёт в бд но как... Ниндзя


Если криво отображается то, что выводится через echo, то надо перекодировать php файл.
Если то, что идет из базы, то см. mysql_set_charset.

Вообще, сильно зависит от того, что подразумевается под "после замены кодировки сайта на ютф-8". Если это просто на серваке поменяли кодировку по умолчанию, то это значит, что всего лишь навсего сервак теперь шлет заголовок Content-type: text/html; charset=utf-8. Если при этом php файлы остались в старой кодировке, то все, что они (сами через echo и т.п., не из бд) выводят, будет отображаться не правильно. И тут зависит от того, у кого ружье. Если нет возможности вернуть кодировку на сервере, то придется переконвертить все php в utf-8.
MAXUS Отправлено: 01 Ноября, 2014 - 22:02:18 • Тема: вывод части кода • Форум: Вопросы новичков

Ответов: 1
Просмотров: 129
yurka12345 пишет:
например если сайт и у него есть контент как сделать что бы менялся только он)а шапка и подвал оставались!!


Аякс или iframe.

Страниц (22): В начало « ... 3 4 5 6 [7] 8 9 10 11 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB