Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql/PHP: общие вопросы

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Открыть новую тему     Написать ответ в эту тему

Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MihailM

Цитата:
Где накосячил

вы заменяете banner на изменение html_text, а потом снова его заменяете на изменени html_text.
конечно же сам html_text не меняется и ничего не знает о вашей первой замене.

Всего записей: 15101 | Зарегистр. 20-09-2014 | Отправлено: 20:04 12-04-2021
MihailM



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii, а вот получилось https://sqlize.online/?phpses=null&sqlses=a26a41ee0d8148ccd130f401b90c3039&php_version=null&sql_version=mysql57 .  Не знаю как %)))
Но все равно как написали выше,  он может не прокатить ..

Всего записей: 2498 | Зарегистр. 19-10-2003 | Отправлено: 20:13 12-04-2021 | Исправлено: MihailM, 20:15 12-04-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MihailM

Цитата:
а вот получилось

это все равно неправильно, так как заменит все </h4>, даже закрывающие <h4> с другим классом или без класса вообще.

Цитата:
может быть еще некоторое количество h3 или h4 заголовков, но с другими классами или же без классов, и с этими заголовками ничего делать не надо.

Всего записей: 15101 | Зарегистр. 20-09-2014 | Отправлено: 20:14 12-04-2021 | Исправлено: Mavrikii, 20:15 12-04-2021
MihailM



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii, здесь надо по тому примеру ловить конец строки , скажем len(html_text-5) и заменять или обрезать концовку .. Думаю так будет правильнее.
Добавлено:
здесь http://forum.ru-board.com/topic.cgi?forum=31&topic=4472&start=800#16 я как бы привел ошибку .

Всего записей: 2498 | Зарегистр. 19-10-2003 | Отправлено: 20:17 12-04-2021 | Исправлено: MihailM, 20:19 12-04-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MihailM

Цитата:
здесь надо по тому примеру

я написал код по тому примеру.
но он заменит только один раз, не знаю сколько там может быть необходимых замен в записи.
плюс он неправильно себя поведет в ситуации с вложенными h4 (то, что вы упоминаете как ошибка)
только подобные вещи не решаются на уровне MySQL, так как нужно парсить структуру html кода.

Всего записей: 15101 | Зарегистр. 20-09-2014 | Отправлено: 20:19 12-04-2021 | Исправлено: Mavrikii, 20:20 12-04-2021
MihailM



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Цитата:
это все равно неправильно, так как заменит все
Ну да или с именем класса уже указать и заменить , это я так для примера . Типа заготовки чтоль... А там уже что меня и на что , пусть сами решают ..  
 
 
 
Добавлено:

Цитата:
я написал код по тому примеру.  
, а только сейчас его заметил .. Упс ...

Всего записей: 2498 | Зарегистр. 19-10-2003 | Отправлено: 20:21 12-04-2021
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
спасибо, вроде бы сработало.  
 

Цитата:
но вам придется его запускать несколько раз подряд, чтобы заменить все возможные h4.
поэтому и спрашиваю - какая версия MySQL у вас?

У меня везде mariaDB- локально 10.5.8 а на сервере 10.2.32.
 
Локально сработало, потестирую еще.  

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 08:32 13-04-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Weinaum

Цитата:
У меня везде mariaDB- локально  

в ней работает и регулярка для замены.
https://mariadb.com/kb/en/regexp_replace/
 

Код:
UPDATE BANNER
SET html_text =  REGEXP_REPLACE(html_text, '<h4 class="my-class">(.*?)</h4>', '<span class="my-class">\\1</span>');

 
заменит все

Всего записей: 15101 | Зарегистр. 20-09-2014 | Отправлено: 08:39 13-04-2021
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
еще проще, спасибо.  

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 08:54 13-04-2021
cabron666



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте,
Не знаю, может тема не совсем подходящая, но спрошу. Имеем БД и файл csv, нужно взять значения из БД и проверить, есть ли они в файле csv, но что-то я не так делаю, кто-нибудь может помочь?
Спасибо

Код:
 
 
$sql = "SELECT num FROM table";
$csv = array();
$handle = fopen("file.csv", "r");
 
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
    $csv[] = $data[0];
}
 
if ($result = $mysqli->query($sql)) {
    while($obj = $result->fetch_object()){
        foreach ($csv as $v) {
            if ($obj->num == $v){
                echo "$obj->num совпадает \n";
            }else{
                echo "$obj->num не совпадает\n";
            }
        }
    }
}
 

 
Решил проблему с in_array, оставлю здесь сообщение, может кому-нибудь поможет

----------
Жизнь - это рояль, клавиша белая, клавиша черная, крышка...

Всего записей: 1342 | Зарегистр. 03-02-2002 | Отправлено: 16:41 16-04-2021 | Исправлено: cabron666, 19:43 16-04-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cabron666
можно и проще.

Цитата:
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
    $csv[] = $data[0];
}

если просто данные в столбце  
$data = file('file.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
 
если данных немного, можно сразу сделать запрос с ними вида
SELECT num FROM table WHERE num in (данные)
 
если много, считать из базы, а далее либо in_array, как и написали, но быстрее сделать array_flip, чтобы значения стали ключами. тогда проверка через isset будет гораздо быстрее перебора in_array

Всего записей: 15101 | Зарегистр. 20-09-2014 | Отправлено: 20:30 16-04-2021
cabron666



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Спасибо за ответ, проблем с временем нет, оставлю пока с in_array

----------
Жизнь - это рояль, клавиша белая, клавиша черная, крышка...

Всего записей: 1342 | Зарегистр. 03-02-2002 | Отправлено: 21:27 16-04-2021
b7music



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
del

Всего записей: 673 | Зарегистр. 04-03-2010 | Отправлено: 05:28 21-04-2021 | Исправлено: b7music, 05:30 21-04-2021
b7music



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
del




Нарушение п. 2.20.2. главы VIII Соглашения по использованию

Всего записей: 673 | Зарегистр. 04-03-2010 | Отправлено: 08:05 27-04-2021 | Исправлено: b7music, 08:11 27-04-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
b7music
вы название темы прочитали?
 
для php регулярок есть PHP: Регулярные выражения (RegExp, Regular, eregi, preg)

Цитата:
чтобы эта страница открывалась только по

какая страница? при чем тут регулярки?
#^/brands/alpha/$#

Всего записей: 15101 | Зарегистр. 20-09-2014 | Отправлено: 08:07 27-04-2021
b7music



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Mavrikii
страница сайта, обработка адресов выполняется через регулярки. Битрикс это

Всего записей: 673 | Зарегистр. 04-03-2010 | Отправлено: 08:11 27-04-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
b7music

Цитата:
del

и вот так вот делать очень не рекомендуется.

Всего записей: 15101 | Зарегистр. 20-09-2014 | Отправлено: 08:18 27-04-2021
Trex



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, нужна помощь дилетанту! Есть сайт на вордпрессе на php 5.x, уже давно надо перевести на 7.3/4/8.х, но тема, которая была выбрана, давно заброшена "производителем". Поставил плагин PHP Compatibility Checker и он выдал одну ошибку и 4 предупреждения. Ошибку я вроде нашел как исправить, а вот 4 одинаковых предупреждения выглядят так:
WARNING | Function create_function() is deprecated since PHP 7.2; Use an anonymous function instead
Как правильно исправить эту строчку?
add_action('widgets_init', create_function('', 'register_widget("nimbus_about_me_widget");'));
 
Кстати, плагин по проверке, работает только до 7.3, а чем проверять на более новые версии, ибо и она подходит к "концу" через полгода?

Всего записей: 6476 | Зарегистр. 03-09-2001 | Отправлено: 12:17 19-06-2021 | Исправлено: Trex, 12:19 19-06-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Trex
Вопросы по WP тут - WordPress
 

Цитата:
Как правильно исправить эту строчку?


Код:
add_action('widgets_init', function() { register_widget("nimbus_about_me_widget"); });

Всего записей: 15101 | Зарегистр. 20-09-2014 | Отправлено: 15:18 19-06-2021
Trex



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Спасибо, ошибки исчезли! Но тему еще придется подрихтовать

Всего записей: 6476 | Зарегистр. 03-09-2001 | Отправлено: 17:32 19-06-2021
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql/PHP: общие вопросы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru