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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
объясните мне эту часть кода

регулярные выражения.
https://www.php.net/manual/en/reference.pcre.pattern.syntax.php
PHP: Регулярные выражения (RegExp, Regular, eregi, preg)
https://www.tutorialrepublic.com/php-tutorial/php-regular-expressions.php

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 10:52 07-07-2021
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
спасибо учителю
 
 
Добавлено:
Mavrikii
 
Как я рассчитывать?
я пробовал это, но это не работает  
 

Код:
 
echo count( $matches . " matches were found.") ;
 

 
   
 
 
это тоже не работает
 

Код:
echo count ('<b>' . '&nbsp;&nbsp;&nbsp;' . $data . " matches were found." . '</b>');

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 11:07 07-07-2021 | Исправлено: zagorisback, 13:19 07-07-2021
alpeg

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
$matches - это массив
Вы его сначала склеиваете со строкой " matches were found." (склеивание точкой), из-за чего он становится строкой "Array" и выдаёт предупреждение (у Вас же включен error_reporting(E_ALL|E_STRICT); ?)
надо так

Код:
echo count( $matches ) . " matches were found." ;  

Всего записей: 2 | Зарегистр. 26-10-2016 | Отправлено: 13:21 07-07-2021
zagorisback



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

счетчик неправильно  
 

Код:
echo count( $matches ) . " matches were found." ;

 
   
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 13:32 07-07-2021
alpeg

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вы бы тогда весь код кидали, чтобы понятно было, что Вы делаете-то.
 
 

Код:
<?php
$haystack = <<<FGSFDS
<span class='alias'>Alex T</span>
 
<span class='alias'>Alex</span>
 
<span class='alias'>Alex</span>
 
<span class='alias'>Dylan</span>
 
<span class='alias'>Tex</span>
 
FGSFDS;
 
preg_match_all("#<span class='alias'>(.*?)</span>#", $haystack, $matches);
$data = $matches[1];
$data = array_unique($data);
natsort($data);
echo join(', ', $data);
echo "<br>\n";
echo count( $data ) . " matches were found.";
 

 

Код:
Alex, Alex T, Dylan, Tex<br>
4 matches were found.

Всего записей: 2 | Зарегистр. 26-10-2016 | Отправлено: 14:18 07-07-2021
zagorisback



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

Цитата:
Вы бы тогда весь код кидали, чтобы понятно было, что Вы делаете-то.  

 
 
может быть много псевдонимов, я хочу отслеживать
 
 

Код:
$haystack = <<<FGSFDS

 
Откуда это взялось  FGSFDS?
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 14:39 07-07-2021
zagorisback



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

и жаль, что код мы не доделали
 
в любом случае все равно спасибо

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 18:09 07-07-2021
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alpeg
 
 
Я попробовал это, но это дает мне 5 результатов (2 двухместные (Alex)
 
 
 
где ошибка?
 
 

Код:
 
 
<?php
$haystack = $row->websites;
 
 
preg_match_all("#<span class='alias'>(.*?)</span>#", $haystack, $matches);
$data = $matches[1];
$data = array_unique($data);
natsort($data);
echo join(', ', $data);
echo "<br>\n";
echo count( $data ) . " matches were found.";  
        
 
?>
 
 
 

 

Цитата:
5 matches were found.

 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 21:43 07-07-2021 | Исправлено: zagorisback, 21:48 07-07-2021
Mavrikii

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

Цитата:
где ошибка?

ну очевидно же, что есть пустой span
$data = array_filter(array_unique(array_map('trim', $data)));

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 22:47 07-07-2021
zagorisback



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

в настоящее время работает
 
благодаря Mavrikii и alpeg за вашу помощь  
 
   
 

 
 

Код:
 
<?php
        
        
$haystack = $row->websites;  
 
preg_match_all("#<span class='alias'>(.*?)</span>#", $haystack, $matches);
$data = $matches[1];
$data = array_filter(array_unique(array_map('trim', $data)));
natsort($data);
echo join(', ', $data);
echo "<br>\n";
echo count( $data ) . " matches were found.";  
        
 
?>
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 23:01 07-07-2021
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот я снова
У меня есть еще одна таблица с полем alias
содержание должны быть извлечены внутри
 

Код:
<td colspan="3">       <strong><span class="bleutitle">Alias:</span> Alex, Dylan, Jack, Dylan</strong> </td>
 

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

Код:
 
 
$haystack = $row->websites;  
 
            preg_match_all("#preg_match_all("#<strong><span class='bleutitle>Alias:</span>(.*?)</strong>#", $haystack, $matches);#", $haystack, $matches);
            $data = $matches[1];
            $data = array_filter(array_unique(array_map('trim', $data)));
            natsort($data);
            echo '<b>' . join(', ' , $data ) . '</b>';
            echo "<br>\n";
            echo '<font color="blue">' . '<b>' . count( $data ) . '</b>' . '</font>' . " alias were found.";  
 
 

 
Добавлено:
чтобы я мог извлечь содержимое
но счетчик неверный и есть дубликаты  
 

Код:
preg_match_all("#</span>(.*?)</strong>#", $haystack, $matches);

 
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 16:15 08-07-2021 | Исправлено: zagorisback, 16:45 08-07-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
я еще раз повторю - не занимайтесь программированием, не ваше это дело, вообще.
потому что вы даже не задумываетесь что нужно сделать (без реализации на конкретном языке программирования).

Цитата:
#<strong><span class='bleutitle>Alias:</span>(.*?)</strong>#

естественно это выберет
Цитата:
Alex, Dylan, Jack, Dylan
как одну целую строку.
которую затем нужно разбить по запятой
 

Цитата:
preg_match_all("#preg_match_all("#<strong><span class='bleutitle>Alias:</span>(.*?)</strong>#", $haystack, $matches);#"

что за бред????
 

Код:
preg_match('#<strong><span class="bleutitle">Alias:</span>(.*?)</strong>#', $haystack, $matches);
$data = explode(',', $matches[1]);
$data = array_filter(array_unique(array_map('trim', $data)));
natsort($data);

но не нужно так парсить html, лучше хранить эти данные отдельно.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 20:39 08-07-2021
zagorisback



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

Цитата:
я еще раз повторю - не занимайтесь программированием, не ваше это дело, вообще.
потому что вы даже не задумываетесь что нужно сделать (без реализации на конкретном языке программирования).
 

 
Почему'?
это не моя работа (я занимаюсь чем-то другим, и делаю это хорошо) а просто хобби
Я не изучал программирование, и то, что я узнал, было в одиночестве, как и все в моей жизни,
если я прошу помощи здесь, и потому что у меня проблемы, форум существует для этого
если вы хотите мне помочь, я ценю это, если в будущем вы предпочтете игнорировать меня, я понимаю это,
в любом случае спасибо за вашу помощь
 
ps: код был почти идеальным, explode отсутствовал
 

Цитата:
что за бред????

 
написанное ранее
код берется путем «парсинга» с сайтов и сохраняется в базе
это не мелочь  
 
однако это работает
 
Спасибо

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 20:59 08-07-2021
Mavrikii

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

Цитата:
однако это работает

то, как написали вы, работать не будет (если это не опечатка при вставке в форум).

Цитата:
preg_match_all("#preg_match_all("#<strong><span class='bleutitle>Alias:</span>(.*?)</strong>#", $haystack, $matches);#", $haystack, $matches);


Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 22:14 08-07-2021
zagorisback



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

Код:
<td colspan="3">       <strong><span class="bleutitle">Alias:</span> Alex, Dylan, Jack, Dylan</strong> </td>

 
 
 

Код:
$haystack = $row->alias;  
 
            preg_match('#<strong><span class="bleutitle">Alias:</span>(.*?)</strong>#', $haystack, $matches);
            $data = explode(',', $matches[1]);
            $data = array_filter(array_unique(array_map('trim', $data)));
            natsort($data);  
            echo '<b>' . join(', ' , $data ) . '</b>';  
            echo "<br>\n";
            echo '<font color="blue">' . '<b>' . count( $data ) . '</b>' . '</font>' . " alias were found.";  

 
   
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 22:27 08-07-2021
zagorisback



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

Привет всем
у меня есть этот код, который должен фильтровать таблицу
 
   
 
если я нажимаю на флажок Аlex ничего не происходит
 
   
 
но если я нажму на Alex 2 фильтр будет выполнен
 
   
 
где ошибка в коде?
 

Код:
 
 
 
<input type="checkbox" name="cred" value="<?php echo $ok;?>"><?php echo '&nbsp;' . '<a style="color:green">' . $ok . '</a>' . " (" . $ok2[$ok] . ")" . '&nbsp;';?>
 
<script>
 
// start filter checkbox     2 di 2
 
$('input:checkbox').on('change', function () {
   //build a regex filter string with an or(|) condition
   //build a filter string with an or(|) condition
   var distributor = $('input:checkbox[name="distr"]:checked').map(function() {
     return this.value;
   }).get().join('|');
   
   //now filter in column 2, with no regex, no smart filtering, not case sensitive
   table.column(2).search(distributor, true, false, false).draw(false);
   
   //
   var credit = $('input:checkbox[name="cred"]:checked').map(function() {
     return this.value;
   }).get().join('|');
   
   //now filter in column 2, with no regex, no smart filtering, not case sensitive
   table.column(4).search(credit, true, false, false).draw(false);
   
   //
   
</script>
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 12:35 16-07-2021
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
проблема в том, что код не выполняет точный поиск
так что он должен найти только Аlex
 

Код:
 
var credit = $('input:checkbox[name="cred"]:checked').map(function() {
     return this.value;
   }).get().join('|');
   
   //now filter in column 4, with no regex, no smart filtering, not case sensitive
   table.column(4).search(credit, true, false, false).draw(false);
 
 

 
я нашел это, но я не знаю, как вписаться в мой код
 
https://stackoverflow.com/questions/43707091/jquery-datatable-how-to-search-column-with-exact-match-for-multiple-options

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 17:24 16-07-2021 | Исправлено: zagorisback, 17:25 16-07-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
какое это имеет отношение к теме? тут нет ни MySQL, ни PHP.
 

Цитата:
если я нажимаю на флажок Аlex ничего не происходит

и не будет, потому что поиск идет по регулярному выражению, а и Alex и Alex 2 попадают под "Alex"

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 05:00 17-07-2021
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
это часть без php, но код есть
и в любом случае я не знал, где публиковать, есть ли раздел для Datatables?
я пробовал это, но это не работает  
 

Код:
 
 
var credit = $('input:checkbox[name="cred"]:checked').map(function() {
  return "^" + this.value + "$";
}).get().join('|');
     
 //now filter in column 2, with no regex, no smart filtering, not case sensitive
table.column(4).search(credit, true, false, false).draw(false);
 
 


Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 08:34 17-07-2021
Mavrikii

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

Цитата:
это часть без php,  

здесь нет PHP кода!
 

Цитата:
я пробовал это, но это не работает

"это" - что?
 

Цитата:
search(credit, true,

true указывает на использование регулярного выражения.
поэтому /Alex/ найдет и Alex и Alex 2, что не так??
 

Цитата:
var credit = $('input:checkbox[name="cred"]:checked').map(function() {
  return "^" + this.value + "$";
}).get().join('|');

составляет выражение из отмеченных чекбосов, если несколько, то будет, например
Alex|Alex 2, то в регулярном выражнии означает либо одно, либо второе.  
когда галка одна, использует только одно значение. и, как и написал выше, под Alex попадают оба!

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 08:49 17-07-2021 | Исправлено: Mavrikii, 08:51 17-07-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