PHP.SU

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

Страниц (14): « 1 [2] 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 199
Itan Отправлено: 25 Сентября, 2016 - 15:05:35 • Тема: Помогите составить регулярку • Форум: Вопросы новичков

Ответов: 12
Просмотров: 1551
PHP:
скопировать код в буфер обмена
  1. preg_match('~(\d+|\w+)~iu', $model[1], $finish_model);

Работает, например, 21941_kalina_ii_universal превращается в 21941, а granta так и остается, всё как и задумано. Но есть одно но. Если этой регулярке передать строку vaz_2110, то она и вернет vaz_2110, хотя по идее, должна вернуть 2110. Как быть?
Itan Отправлено: 25 Сентября, 2016 - 12:37:01 • Тема: Помогите составить регулярку • Форум: Вопросы новичков

Ответов: 12
Просмотров: 1551
Всем спасибо, разобрался. Наименование модели вытягивается из адреса ссылки, а не из текста ссылки, как я хотел изначально. Далее обработка: если цифр нет, берем слово.
(Добавление)
Я прям чувствую, как сгорают нервные клетки, но не подскажите ли вы, в чем ошибка?

Данные:
CODE (htmlphp):
скопировать код в буфер обмена
  1. 2170_priora_sedan
  2. 2131_niva
  3. vesta
  4. 2109
  5. granta
  6. 21941_kalina_ii_universal
  7. vaz_21102
  8. 21728_priora_coupe


Нужно вернуть либо число, либо оставить строку как есть (если, например, vesta).

Делал так:
PHP:
скопировать код в буфер обмена
  1. preg_match('~([0-9]+)|(^[a-z]+$)~is', $model[1], $finish_model);

И так:
PHP:
скопировать код в буфер обмена
  1. preg_match('~([0-9]+)|^([a-z]+)$~is', $model[1], $finish_model);

Или так:
PHP:
скопировать код в буфер обмена
  1. preg_match('~(\d+)|(\w+)~iu', $model[1], $finish_model);

Получается только номера вытянуть, а строки где нет цифр - возвращаются пустые.

В чем моя ошибка?
Itan Отправлено: 25 Сентября, 2016 - 12:02:08 • Тема: Помогите составить регулярку • Форум: Вопросы новичков

Ответов: 12
Просмотров: 1551
И еще вопрос: допустим, мы выдернули текст между тегами <a></a>, но не знаем - есть там цифровой индекс модели автомобиля или только текстовый. Так вот, правильным ли будет обработка этого текста двумя регулярками: сначала проверка на наличие цифр, а если массив на выходе пустой, то ищем текстовый индекс модели, или это все можно сделать в одном шаблоне?
Itan Отправлено: 25 Сентября, 2016 - 09:27:56 • Тема: Помогите составить регулярку • Форум: Вопросы новичков

Ответов: 12
Просмотров: 1551
Друзья! Снова обращаюсь за помощью!

В процессе эксплуатации выяснилось, что бывают еще такие ссылки:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <a class="au-elements__title__link_table"
  2.                            href="/car/used/vaz/2131_niva/8143857"
  3.                            title="">
  4.                             ВАЗ (LADA)
  5.                             2131 Нива
  6.                         </a>
  7.  
  8.  
  9.  
  10. <a class="au-elements__title__link_table"
  11.                            href="/car/used/8143853"
  12.                            title="">
  13.                             ВАЗ (LADA)
  14.                             2194 KALINA II
  15.                         </a>
  16.  
  17.  
  18.  
  19. <a class="au-elements__title__link_table"
  20.                            href="/car/used/vaz/largus/8143760"
  21.                            title="">
  22.                             ВАЗ (LADA)
  23.                             Largus
  24.                         </a>
  25.  
  26.  
  27. <a class="au-elements__title__link_table"
  28.                            href="/car/used/vaz/vaz_21102/8143593"
  29.                            title="">
  30.                             ВАЗ (LADA)
  31.                             2110
  32.                         </a>
  33.  
  34.  
  35. <a class="au-elements__title__link_table"
  36.                            href="/car/used/gaz/31105/8143283"
  37.                            title="">
  38.                             ГАЗ
  39.                             31105
  40.                         </a>
  41.  
  42. <a class="au-elements__title__link_table"
  43.                            href="/car/used/vaz/2170_priora_sedan/8143186"
  44.                            title="">
  45.                             ВАЗ (LADA)
  46.                             2170 PRIORA СЕДАН
  47.                         </a>


Задача не из легких: получить числовой индекс модели автомобиля (1111, 2110, 3110, 2170) из кода ссылки, а при отсутствии: текстовое название (Largus, Granta и т.д.)

У всех ссылок общее одно: название класса ссылок (au-elements__title__link_table).

Как это реализовать? Я пробовал, но получаются такие велосипеды, что конструкция ДВС по сравнению с ними кажется пустяком.

Пробовал вытянуть только числовой индекс, но как быть, если вместо индекса только название (например, Vesta):
PHP:
скопировать код в буфер обмена
  1. preg_match('~au-elements__title__link_table.+\)\s*(\d{4,4}).+<\/a>~Uis', $s, $model);


Но опять же, это работает только на Ладу, потому что в шаблоне используется скобка ")" и при условии что число из 4 символов.
Itan Отправлено: 23 Сентября, 2016 - 11:42:22 • Тема: Помогите составить регулярку • Форум: Вопросы новичков

Ответов: 12
Просмотров: 1551
Огромное спасибо!
Itan Отправлено: 22 Сентября, 2016 - 19:48:20 • Тема: Помогите составить регулярку • Форум: Вопросы новичков

Ответов: 12
Просмотров: 1551
Убил три часа не могу додуматься.
Есть строка:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.                         <a class="au-elements__title__link_table"
  3.                            href="/car/used/vaz/2121/8139254"
  4.                            title="">
  5.                             ВАЗ (LADA)
  6.                             2121 Нива
  7.                         </a>
  8.  

- с табуляциями и пробелами.
Надо вытащить числовой индекс 2121.

Последняя стряпня (сильно не смейтесь):
PHP:
скопировать код в буфер обмена
  1. preg_match('~ВАЗ \(LADA\).*([0-9]+)~Uis', $s, $model);


Не работает оно. Помогите, пожалуйста.
Itan Отправлено: 01 Февраля, 2015 - 21:16:49 • Тема: Округление float • Форум: Вопросы новичков

Ответов: 2
Просмотров: 179
Отлично, спасибо!
number_format($price / $count, 2) теперь показывает то, что нужно.
Itan Отправлено: 01 Февраля, 2015 - 15:09:13 • Тема: Округление float • Форум: Вопросы новичков

Ответов: 2
Просмотров: 179
Здравствуйте! Есть числа, например, "0,10000", "0,422222".

Цель: округлить так, чтобы после запятой было ровно два знака, даже если конечный результат кончается на ноль.

Ожидание: 0,10000 -> 0.10, 0,422222 -> 0.42
Реальность: 0,10000 -> 0.1, 0,422222 -> 0.42

Что делал: использовал round($var, 2)

Вопрос: как сохранить второй после запятой знак, если он - ноль? Чтобы было 0,10000 -> 0.10, а не 0,1 (как получается)
Itan Отправлено: 07 Декабря, 2012 - 12:57:11 • Тема: Сортировка массива по возрастанию • Форум: Вопросы новичков

Ответов: 4
Просмотров: 206
Огромное спасибо! Мучаюсь второй день! Все работает, круто!
Itan Отправлено: 07 Декабря, 2012 - 12:28:02 • Тема: Сортировка массива по возрастанию • Форум: Вопросы новичков

Ответов: 4
Просмотров: 206
Что-то не получается. Пробовал так:
PHP:
скопировать код в буфер обмена
  1. array_multisort($all_finish[0],SORT_ASC, SORT_NUMERIC, $all_finish[1], $all_finish[2], $all_finish[3], $all_finish[4], $all_finish[5], $all_finish[6]);


Пробовал в цикле:
PHP:
скопировать код в буфер обмена
  1. for($i=0; $i<25; $i++) {array_multisort($all_finish[$i], SORT_ASC, SORT_NUMERIC);}


Пробовал так:

В чем ошибка?
Itan Отправлено: 07 Декабря, 2012 - 12:03:27 • Тема: Сортировка массива по возрастанию • Форум: Вопросы новичков

Ответов: 4
Просмотров: 206
Здравствуйте! Есть массив:

PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.         (
  4.             [0] => http://www.html
  5.             [1] => 1 980 000 р
  6.             [2] => 3724
  7.         )
  8.  
  9.     [1] => Array
  10.         (
  11.             [0] => http://www.html
  12.             [1] => 3 200 000 р
  13.             [2] => 797
  14.         )
  15. )


Выводится в таком виде:

1 980 000 р | 3724
3 200 000 р | 797

Есть ли стандартные функции для сортировки по второму столбцу в порядке возрастания? Чтобы выводилось так:

3 200 000 р | 797
1 980 000 р | 3724

Пробовал sort, rsort, но что-то не выходит - сортирует но не понятно, каждый раз по разному.
Itan Отправлено: 30 Марта, 2012 - 14:09:40 • Тема: js окошко alert • Форум: Вопросы новичков

Ответов: 19
Просмотров: 904
А разве я не прав? Если мы через print выводим в браузер alert, то header уже не получится поменять.
Itan Отправлено: 30 Марта, 2012 - 09:15:39 • Тема: js окошко alert • Форум: Вопросы новичков

Ответов: 19
Просмотров: 904
Ajax не обязательно использовать.
Если использовать схему, как на первой странице у автора, тогда да, нужен Ajax.
Но можно и так обойтись:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if (isset($_POST['submit'])) {
  3.  if ($_POST['input1'] != '' && $_POST['input2'] != '') {
  4.    # Делаем запись в БД
  5.   print '<script>'.
  6.        'alert("ok");'.
  7.        'window.location("tratata'.$_GET['id'].'"&tratata=trutrutu)'.
  8.       '</script>';
  9.  }
  10. } else {
  11.  # Некоторые поля пустые, выводим форму
  12. }
  13. ?>


Header не получится выставить, потому что в браузер уже попал текст - тот самый алерт
Itan Отправлено: 29 Марта, 2012 - 21:03:27 • Тема: print_r выводит какую-то единицу • Форум: Вопросы новичков

Ответов: 7
Просмотров: 982
Ахахах Улыбка Точно!! Знак "равно" лишний) Спасибо большое!
Itan Отправлено: 29 Марта, 2012 - 20:58:54 • Тема: js окошко alert • Форум: Вопросы новичков

Ответов: 19
Просмотров: 904
Попробуйте так:
window.location="?id=<?=$_GET['id']?>&page=forum#form";
(Добавление)
Я не силён в JS, но, кажется, должно в итоге так быть:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <script>
  3. function message() {
  4.  alert('Данные отправлены!');
  5.  window.location="?id=<?=$_GET['id']?>&page=forum#form";
  6. }
  7. </script>
  8. <form onsubmit="message()">
  9. ...
  10. </form>
  11.  

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB