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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

zagorisback



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

Код:
 
 
<script type="text/javascript">
    <!--
    $(document).ready(function()
    {
        $('#sharecontainer').click(function(){ $('.social-share').fadeToggle()});
    $('#bi-eff-sole', top.document).html('Sorge: 8:16, Tramonta: 18:07');
    $('#bi-eff-luna', top.document).html('Leva: 4:04, Cala: 10:04 - Luna calante');
$('#datatable2', top.document).remove();
if( $('#divprevi2', top.document).length == 0 )
    $('#divprevi2').insertAfter($('#intertable', top.document));
else
    $('#divprevi2', top.document).append($('#datatable2'));
if(0>=0 && 0<7)
    $('#datatable2', top.document).show();
else
    $('#divprevi2', top.document).remove();
    });
    //-->
</script>
 

 
 
 

Цитата:
 
$('#bi-eff-sole', top.document).html('Sorge: 8:16, Tramonta: 18:07');
    $('#bi-eff-luna', top.document).html('Leva: 4:04, Cala: 10:04 - Luna calante');  
 

 
 
Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => [11] => ) Successful match
 
 
 

Код:
$data2 = file_get_html('https://www.ilmeteo.it/portale/meteo/previsioni.php?citta=San+Pietroburgo&c=15973');        
                
        if (preg_match_all('#<script type="text/javascript"[\s\S]*?>[\s\S]*?<\/script>#', $data2, $result)) {
            $matches = $result[0]; //only values inside quotation marks
            print_r($matches);
            echo "Successful match<br>";
        } else
           echo "Match attempt failed";

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 09:49 24-02-2022 | Исправлено: zagorisback, 09:54 24-02-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
я не буду даже комментировать. не понимаете что и зачем используете.
https://simplehtmldom.sourceforge.io/manual.htm

Цитата:
 
$data2 = file_get_html

не строка!

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 10:12 24-02-2022
zagorisback



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

 
Решается, наконец , Только то, что я должен сделать 2 запроса в Regex
 
 

Цитата:
Array ( [0] => $('#bi-eff-sole', top.document).html('Sorge: 8:16, Tramonta: 18:07'); [1] => $('#bi-eff-sole', top.document).html('Sorge: 8:16, Tramonta: 18:07'); )
Successful match
 
Array ( [0] => $('#bi-eff-luna', top.document).html('Leva: 4:04, Cala: 10:04 - Luna calante'); [1] => $('#bi-eff-luna', top.document).html('Leva: 4:04, Cala: 10:04 - Luna calante'); ) Successful match

 
Я хотел бы извлечь только это, возможно неправильное регулярное выражение
 
Sorge: 8:16, Tramonta: 18:07
 
Leva: 4:04, Cala: 10:04 - Luna calante
 
 

Код:
$data2 = file_get_html('https://www.ilmeteo.it/portale/meteo/previsioni.php?citta=San+Pietroburgo&c=15973');        
                
        if (preg_match_all('/.*?.Sorge:.*.*?/', $data2, $result)) {
            $matches = $result[0]; //only values inside quotation marks
            print_r($matches);
            echo '<br><b style="color:green;">Successful match</b><br>';
        } else
           echo '<br><b style="color:red;">Match attempt failed<b></br>';
        
       echo '<br>';
        
        
       if (preg_match_all('/.*?.Leva:.*.*?/', $data2, $result2)) {
            $matches2 = $result2[0]; //only values inside quotation marks
            print_r($matches2);
            echo '<br><b style="color:green;">Successful match</b><br>';
        } else
           echo '<br><b style="color:red;">Match attempt failed<b></br>';

 
 
 
Добавлено:

 

Код:
(Sorge|Leva)[^']+

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 10:46 24-02-2022 | Исправлено: zagorisback, 10:49 24-02-2022
zagorisback



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

Как использовать preg_replace, чтобы удалить строку из?
 

Цитата:
cinema/portal/site/

 
Результат должен быть этим
 

Цитата:
http://вид

 
 

Код:
 
 
$url = "http://cinema/portal/site/вид";
 
echo $html = preg_replace("/\/cinema\/portal\/site\d+-(.*)/", '"http://$1"', $url);
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 09:42 28-02-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
https://www.php.net/manual/en/function.basename.php

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 09:48 28-02-2022
zagorisback



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

Цитата:
https://www.php.net/manual/en/function.basename.php

 
Мне нужен «preg_replace», потому что он должен заменить все URL-адреса страницы, обработанной с помощью «Simple_html_dom»  
 
 
 
 
 

Код:
 HTML
 
<div class="description">
            <span><a href="/portal/site/Текст чтобы взять">Текст чтобы взять </a></span>
 
 
HTML
 
 
 
без preg_replace не работает  
 

Код:
 
 
$first_level_items5 = $html->find( 'div [class=description]');
 
 
foreach ( $first_level_items5 as $item5 ) {
    //echo $item5;
}
 
 
echo $html = preg_replace('/"\/portal\/site\/\d+/(.*)"/', '"http://$1"', $item5);
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 10:37 28-02-2022 | Исправлено: zagorisback, 10:38 28-02-2022
zagorisback



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

Цитата:
<div class="description">
            <span><a href="/portal/site/imdb">imdb</a></span>

 
после
 

Цитата:
http://imdb/

 
 

Код:
foreach ( $first_level_items0 as $item2 ) {
     
    $output = preg_replace('#"\/portal\/site\/(.*)"#', '"http://$1"', $item2);
    
    echo $output;
}

 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 13:59 28-02-2022 | Исправлено: zagorisback, 13:59 28-02-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
я не понимаю желаемый результат

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 19:31 28-02-2022
zagorisback



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

Цитата:
я не понимаю желаемый результат  

 
На практике он должен искать поддомен
(который нет на веб-странице,)
пример:
таким образом
 
http://imdb /
http://google /
 
таким образом
https://www.imdb.com/
https://www.google.com/
 
Как это сделать, я не знаю (и, если возможно)
Есть несколько суффиксов, .com, .org, .ru etc ..  
 


Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 19:43 28-02-2022 | Исправлено: zagorisback, 19:43 28-02-2022
Mavrikii

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

Цитата:
Как это сделать, я не знаю (и, если возможно)

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

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 20:30 28-02-2022
fanmas



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. Подскажите, есть массив по результату foreach. Столкнулся с вопросом как группировать массив, в массиве одинаковые товары с разными ценами, нужно, например, вместо 4 строк по одному товароу вывести 1 строку, а цену и колличество суммировать.

Всего записей: 62 | Зарегистр. 07-07-2005 | Отправлено: 14:22 02-03-2022 | Исправлено: fanmas, 16:50 02-03-2022
Mavrikii

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

Цитата:
Столкнулся с вопросом как группировать массив, в массиве одинаковые товары с разными ценами, нужно, например, вместо 4 строк по одному товароу вывести 1 строку, а цену и колличество суммировать.

ну, и в чем сложность? заводите еще переменную - счетчик.
сначала 0 или 1, как удобнее, увеличиваете в цикле при обработке.
как только достигает, скажем, 4, то сохраняете или выводите нужные данные, выставляете ее снова в 0 или 1 и так будет формироваться следующая строка.
 
ps: если хотите, можете сразу массив разбить на группы
https://www.php.net/manual/ru/function.array-chunk.php

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 23:49 02-03-2022 | Исправлено: Mavrikii, 03:41 03-03-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код работает, я хотел бы улучшить его
 
 
Ссылка
 
 
 
Как добавить  "target ="_blank" на ссылку, чтобы открыть на другой странице?  
 

Код:
foreach ( $first_level_items0 as $item2 ) {
     
    $result = preg_replace('%"\/portal\/site\/.*">(.*)<\/a>%', '"http://$1.com$0', $item2);
    
echo $result;

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 15:17 16-03-2022 | Исправлено: zagorisback, 19:16 16-03-2022
Mavrikii

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

Цитата:
Как добавить  "target ="_blank" на ссылку, чтобы открыть на другой странице?  

так же. добавить в регулярку замену. но это уже будет не $0, а составление из частей.
либо использовать просто str_replace, заменя "> на " target="_blank"> если нет других похожих html тегов.

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 23:10 16-03-2022 | Исправлено: Mavrikii, 02:59 17-03-2022
zagorisback



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

Цитата:
так же. добавить в регулярку замену. но это уже будет не $0, а составление из частей.
либо использовать просто str_replace, заменя "> на " target="_blank"> если нет других похожих html тегов.

 
приостановлено, потому что код не работает,
Я не понимаю, Вчера работал, Тогда это была ошибка
 
 

Цитата:
Warning: file_get_contents(https://www.sitesample.com): failed to open stream: HTTP request failed!
 
Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

 
 

Код:
 
 
require_once 'simple_html_dom.php';
 
 
$context = array(  
 
   'http' => array
       (  
              'proxy' => 'tcp://proxy-nossl.antizapret.prostovpn.org:29976', // This needs to be the server and the port of the NTLM Authentication Proxy Server.  
              'request_fulluri' => true
       ),
 
 
    'ssl'=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false
    )
    
);  
 
$html = file_get_html("https://www.sitesample.com", false, stream_context_create($context));
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 22:04 17-03-2022
Mavrikii

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

Цитата:
OpenSSL Error messages: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

https://stackoverflow.com/questions/15166950/unable-to-establish-ssl-connection-how-do-i-fix-my-ssl-cert

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 23:16 17-03-2022
zagorisback



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

Цитата:
Цитата:
OpenSSL Error messages: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
 
https://stackoverflow.com/questions/15166950/unable-to-establish-ssl-connection-how-do-i-fix-my-ssl-cert

 
 
Так как вы решите проблему?

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 23:31 17-03-2022
Mavrikii

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

Цитата:
Так как вы решите проблему?

смотреть с какой версией Openssl собран ssl модуль в php.
возможно не поддерживает тот протокол, что там используется, либо прокси как то взаимодействует - запросить напрямую, не через прокси.

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 23:40 17-03-2022
zagorisback



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

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

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

Всего записей: 15108 | Зарегистр. 20-09-2014 | Отправлено: 08:20 18-03-2022
Открыть новую тему     Написать ответ в эту тему

Страницы: 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