PHP.SU

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

Страниц (6): « 1 [2] 3 4 5 6 »

> Найдено сообщений: 81
Грачи прилетели Отправлено: 14 Сентября, 2018 - 10:53:56 • Тема: Дополнить регулярное выражение • Форум: Регулярные выражения

Ответов: 2
Просмотров: 404
Добрый день!

Строка сначала приводится в нижний регистра, символы транслетируются. Это работает. Дальше необходимо убрать из строки все символы кроме цифр и букв, убрать множественные пробелы, если есть и с полученным результатом одинарные пробелы заменить на тире

Сейчас делаю так:

PHP:
скопировать код в буфер обмена
  1.  
  2. $str = preg_replace('~[^-a-z0-9_]+~u', '-', $str);
  3. $str = trim($str, "-");
  4.  


Но если есть строка такого вида: "Пример - как не надо делать", то в результате получаю

"primer---kak-ne-nado-delat"

вот это тройное полученное тире не могу поборот. Помогите, пожалуйста Улыбка
Грачи прилетели Отправлено: 05 Сентября, 2018 - 19:13:42 • Тема: Интервал даты • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 39
Добрый день!

Есть запрос:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT
  2.   `id`,
  3.   `title`,
  4.   TIMESTAMPADD(HOUR,  3,  `statedtime`) AS statedtime_mos
  5. FROM
  6.   `dump`
  7.  


Мне надо добавить условие, по которому я отберу записи, где на данный момент

statedtime_mos > 21 дня , т.е. старше чем 21 день от текущего момента

поле типа datetime


Помогите, пожалуйста... хочется сделать это на уровне SQL запроса, а не переносить это в код программы
Грачи прилетели Отправлено: 15 Мая, 2018 - 06:43:38 • Тема: php и postgresql • Форум: Вопросы новичков

Ответов: 1
Просмотров: 166
проблема была из-за регистра части полей в запросе...

но с одного поля типа boolean вместо false или true выводится только 1-я буква f или t
(Добавление)
Грачи прилетели пишет:
проблема была из-за регистра части полей в запросе...

но с одного поля типа boolean вместо false или true выводится только 1-я буква f или t


это стандартное поведение для этого типа поля в postgresql...
Грачи прилетели Отправлено: 14 Мая, 2018 - 21:43:26 • Тема: php и postgresql • Форум: Вопросы новичков

Ответов: 1
Просмотров: 166
Добрый день!

Делаю вывод данных на страницу из базы postgresql через php


Проблема в том, что часть данных выводится нормально, а часть пустые... Может это что-то известное сможет кто подсказать куда копать?

Спасибо
Грачи прилетели Отправлено: 03 Апреля, 2018 - 09:09:16 • Тема: Парсер картинки с сайта • Форум: Вопросы новичков

Ответов: 1
Просмотров: 196
Добрый день!

Пытаюсь распарсить сайт и вытащить со страницы адрес картинки. По исходным данным, на странице есть блок
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div class="ttt_ddd">
  3.     <a class="ta" href="https://sait-url/name/dsgfd564.html"><img class="ti" alt="описание какое-то " src="https://sait-url/jpg/6967ghfghdf564.jpg"></a>
  4. </div>
  5.  



искать придется именно по указанному div, т.к. он у них уникальный, а вот по классу картинок <img class="ti"...> таких на странице много..

когда я искал только по тегу картинки, то вырезал так
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. $content_pic = file_get_contents("https://sait-url/stranica.html");
  5.  
  6.  
  7. preg_match('/<img class=\'ti' alt="" src=\'(.*)<\/a>/s', $content_pic, $m[]);
  8. $ppp= strip_tags($m[1]);
  9. $pic_day = str_replace("'>", "", $ppp);
  10. $pic_day = str_replace("'>", "", $ppp);
  11.  
  12. $pic_day =  substr($pic_day, 0, strrpos($pic_day, ".jpg")).".jpg";
  13.  
  14. echo $pic_day;
  15. ?>
  16.  



Пожалуйста, помоги мне правильно переделать этот кусок парсера, для правильного вытаскивания URL картинки
CODE (html):
скопировать код в буфер обмена
  1. https://sait-url/jpg/6967ghfghdf564.jpg
из указанного блока DIV

Спасибо
(Добавление)
Но чаще всего на странице в этом блоке идет три картинке вот так:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <DIV CLASS="ttt_ddd">
  3.     <a CLASS="ta" href="https://sait-url/name/9gdfdf31.html"><IMG CLASS="ti" alt="описание" src="https://sait-url/jpg/4645is1002.jpg"></a>
  4.     <a CLASS="ta" href="https://sait-url/name/2456858.html"><IMG CLASS="ti" alt="описание " src="https://sait-url/jpg/546is230.jpg"></a>
  5.     <a CLASS="ta" href="https://sait-url/name/2045672.html"><IMG CLASS="ti" alt="описание" src="https://sait-url/jpg/i45654s2057.jpg"></a>
  6. </DIV>
  7.  


и мне надо тогда получить URL второй картинки
Грачи прилетели Отправлено: 15 Декабря, 2017 - 10:20:15 • Тема: php - sms, Whatsapp • Форум: Вопросы новичков

Ответов: 1
Просмотров: 208
Добрый день, уважаемые коллеги!

Мне необходимо отправлять по списку пользователей 2-10 чел. смс или сообщение в Whatsapp при наступлении заданного события .

Это чисто рабочий скрипт, не коммерческий, хотим поставить сторожа, который сообщит, если прилетело заданное событие.

События отслеживаются кроном с использованием php поиском по MySQL

Сейчас, при наступлении события отправляем почту, с этим проблем нет. Кол-во таких событий в месяц 2-5 не больше, поэтому идти по платным сервисам нецелесообразно.

Получатели сообщения свои люди, поэтому каких-то изысков не требуется.

Что можете посоветовать по этой теме, может кто-то этот путь уже прошел.

Спасибо!
Грачи прилетели Отправлено: 25 Сентября, 2017 - 19:34:36 • Тема: Склейка csv файлов • Форум: Вопросы новичков

Ответов: 3
Просмотров: 235
Строитель пишет:
Грачи прилетели пишет:
но приходится указывать каждый файл.
Как это? Вручную пишете их имена?


в настойках задал один раз
1.scv
2.scv
3.scv

их пока 3, но я думаю, что их может когда-то стать больше, вот и хочется что-то более универсальное
Грачи прилетели Отправлено: 25 Сентября, 2017 - 19:02:16 • Тема: Склейка csv файлов • Форум: Вопросы новичков

Ответов: 3
Просмотров: 235
Добрый день!

Возможно подскажите новое решение:

Есть несколько CSV файлов в каталоге. Мне надо их склеить в один. по структуре совпадают.
Сейчас я каждый из файлов читаю и записываю в созданный файл, но приходится указывать каждый файл. Может быть ест решение, которое позволит как-то проще взять все csv файлы в указанном каталоге и склеить их в один файл?

Спасибо
Грачи прилетели Отправлено: 20 Сентября, 2017 - 10:06:33 • Тема: оптимизация скриптов • Форум: Вопросы новичков

Ответов: 1
Просмотров: 113
Добрый день!

Хочу посоветоваться по следующему вопросу:

есть некий набор php скриптов, которые выводят статистические данные из MySQL. Когда-то было всего несколько скриптов, сейчас их порядка 50 или больше.

В некоторых скриптах пересекаются выборки по данным - например общее кол-во или кол-во за период и т.п.

Есть смысл выносить такие общие sql запросы в один и инклюдить его где-то в начале, а в скриптах просто выводит переменные с результатом запроса?

Что говорят лучшие практики об этом?

Проект самописный, для себя, использовать какие-то готовые фреймворки и т.п. не хочу
Грачи прилетели Отправлено: 19 Сентября, 2017 - 09:08:19 • Тема: помощь в SQL запросе BETWEEN IF и т.п. • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 39
Добрый день!

Прошу помощи в составлении sql запроса

Есть поля
status_report (int)
day_start (datetime)
day_stop (datetime)
5.5.46 - MySQL
Мне надо вывести информацию, которая подходит под следующие условия

status_report = 0
day_start больше или равно текущей дате
day_stop меньше или равно текущей дате

но если status_report=0, а day_start и day_stop уже меньше текущей даты, значения всё равно выводить...

Сейчас мой запрос выглядит так
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `reestr` WHERE `day_start` BETWEEN '2017-09-19' AND '2017-09-29' AND status_report=0 ORDER BY `day_start` ASC


и в него не попадают записи. если даты уже прошли.

Как правильно построить такой запрос? Предполагаю, что тут необходимо использовать операторы IF и т.п., но пока не дошло как

Вариант
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `reestr` WHERE status_report=0 AND ((`day_start` BETWEEN '2017-09-19' AND '2017-09-29') OR (`day_stop` BETWEEN '2017-09-19' AND '2017-09-29')) ORDER BY `day_start` ASC


вроде выводит, но как только дата стоп выйдет за битвин, записи со статусом=0 не выводятся
Грачи прилетели Отправлено: 29 Августа, 2017 - 19:09:27 • Тема: insert в цикле select • Форум: Вопросы новичков

Ответов: 6
Просмотров: 618
Друзья, спасибо!

конечно же забыл GRUOP BY ... причем , когда sql запрос проверял группировку делал, а потом просто забыл, а так как к php обращаюсь раз в полгода, когда свои отчетитки правлю, просто недоглядел.
Грачи прилетели Отправлено: 29 Августа, 2017 - 16:48:41 • Тема: insert в цикле select • Форум: Вопросы новичков

Ответов: 6
Просмотров: 618
Добрый день!

что-то в ступоре, помогите, пожалуйста, вставить в цикле полученный в результате селекта массив. при таком инсерте вставляет только одну запись..., а имз базы выводится несколько записей в цикле
PHP:
скопировать код в буфер обмена
  1.  
  2. if ($result = $mysqli->query("SELECT count(id) con, spec FROM `fk`")) {
  3. while( $Arr = $result->fetch_assoc() ){
  4.  
  5. mysqli_query($mysqli, "INSERT INTO `fk_stat` (`id`, `day_stat`, `spec`, `str`) VALUES (NULL, NOW(), '".$Arr['spec']."', '".$Arr['con']."');");
  6.  
  7.         }
  8. }
  9.  
  10.  
Грачи прилетели Отправлено: 21 Апреля, 2017 - 19:32:41 • Тема: Регулярные выражения - удалить часть строки • Форум: Вопросы новичков

Ответов: 1
Просмотров: 169
Добрый день!

Помогите, пожалуйста, составить регулярное выражение (видимо необходимо оно) для удаления части стоки.
Есть постоянная часть, есть динамичная, но всегда равная по длине. Например
Над седой равниной моря от 01.02.2017 какой-то текст
Над седой равниной моря от 01.03.2017 какой-то текст
Над седой равниной моря от 01.04.2017 какой-то текст
Над седой равниной моря от 01.05.2017 какой-то текст

мне надо вырезать из строки все до "какой-то текст"

С постоянной частью то все просто

PHP:
скопировать код в буфер обмена
  1. $str= str_replace('Над седой равниной моря от ', '', $str);


а как подрезать сразу и динамичную часть?
Всего 37 символов , которые надо удалить
Динамичная часть 10 + пробел перед датой.... Не могу составить выражение, все ошибки дает

проблема в том, что кроме текста с заменой, в переборе встречаются и другой текст, поэтому в лом отрезать от 0 до 37 символов не могу, записи встречаются и без этой лабуды ...
Спасибо
Грачи прилетели Отправлено: 11 Апреля, 2017 - 16:53:25 • Тема: Регулярные выражения • Форум: Вопросы новичков

Ответов: 0
Просмотров: 101
Добрый день!

Прошу помощи: Мне надо из строки вырезать все, кроме латинских букв (любой регистр) и цифр. Далее оставить только одиночные пробелы, которые заменить на нижнее подчеркивание. Вот в коде ниже пытаюсь это сделать


PHP:
скопировать код в буфер обмена
  1. $str = "Nad !!   sedoy<< 652 ... ??? > ;  ;   --                --< ravninoy morya";
  2.  
  3. $str = preg_replace("/[^a-zA-ZА-Яа-я0-9\s]/", '', $str); //удаляю все символы кроме букв и цифр
  4. $str = preg_replace("/  +/"," ",$str); // удаляю множественные пробелы (взял из мануала)
  5.  
  6. $str = str_replace(" ", "_", $str); // меняю пробел на нижнее подчеркивание и получаю фигню
  7.  
  8.  
  9. echo $str;


На выходе получаю
"Nad_sedoy_652_ _ravninoy_morya"


А мне надо, чтобы получилось
"Nad_sedoy_652_ravninoy_morya"

Помогите составить правильно регулярку.

Спасибо!
(Добавление)
всё, решил вопрос
спасибо
Грачи прилетели Отправлено: 06 Апреля, 2017 - 22:47:12 • Тема: SET в LOAD DATA INFILE • Форум: Работа с СУБД

Ответов: 1
Просмотров: 715
Получилось сделать, если добавить присвоение переменных через IGNORE 1 ROWS

но проблема в том, что мне csv файл отдают с русским наименование столбцов, причем встречаются не одним, а несколькими словами...

Ради эксперимента названия в файле сделал латинице и тогда получилось, а с русскими названием косяк -(
(Добавление)
через костыли заменяя в csv русские заголовки на название полей из таблицы базы получилось, но решение не нравится

если кто-то поделится правильным решением, буду признателен

Страниц (6): « 1 [2] 3 4 5 6 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB