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

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

Цитата:
я не понимаю

значит регулярное выражение не выбирает весь адрес, а только домен с портом.
 
/(?m)http(?:s?):\/\/.*?([^\.\/]+?\.[^\.]+?)(?:\/|$).*/
выберет все до конца строки (. не выбирает перенос строки без модификатора s)

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 01:07 14-02-2022
zagorisback



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

Цитата:
значит регулярное выражение не выбирает весь адрес, а только домен с портом.
 
/(?m)http(?:s?):\/\/.*?([^\.\/]+?\.[^\.]+?)(?:\/|$).*/
выберет все до конца строки (. не выбирает перенос строки без модификатора s)

 
   
 
Теперь это работает, адрес и завершен,
Регулярное выражение было неправильно (найдено на Stackoverflow)
 
Я могу удалить другой код выше сейчас
 
Mavrikii Большое Вам спасибо
Я действительно помогла мне

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 01:17 14-02-2022 | Исправлено: zagorisback, 01:18 14-02-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Изменена служба FAVICON, это более надежным и мощным  
 
Free IPv6 enabled Favicon-Service
 
 
Мне нужна еще одна маленькая помощь,
Это код без «Regex» и сложных вещей
1)
Загрузите FAVICON с этим URL (это отображается сейчас) и сохранить его в папке моего компьютера
2)
Проверьте, существует ли Favicon, если не скачать его
3)
Визуализируйте Favicon прямо из папки  
 
 
Только строка в поле distributor
пример:
imdb.com.
 

Код:
 
echo  '<img width="20" height="20" src="//f4.allesedv.com/20/' . $row['distributor'] . '"/>';
 

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

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

Цитата:
Загрузите FAVICON с этим URL (это отображается сейчас) и сохранить его в папке моего компьютера

отображается и загружается браузером, а не php. читать как скачивать файлы с помощью CURL или даже file_get_contents с url_wrappers
 

Цитата:
Проверьте, существует ли Favicon, если не скачать его

file_exists
 

Цитата:
Визуализируйте Favicon прямо из папки

подставить путь к файлу, вместо внешнего URL

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 22:56 14-02-2022
zagorisback



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

Код:
 
$url = 'http://www.google.com/favicon.ico';
 
$domainparse = parse_url($url, PHP_URL_HOST);
$domain = str_replace('www.','',$domainparse);
$img = 'download3/' . $domain. '_favicon'.'.ico';
file_put_contents($img, file_get_contents($url));
 
echo  '<li>' . '<img width="20" height="20" src="' . $img. '"/>' . '</li>';
 

 
пример:
google.com_favicon.ico.
 
Проблема: Вы должны ввести полный URL маршрута для скачивания Favicon
пример:
http://www.google.com/favicon.ico.
 
2)
Я хотел бы использовать эту услугу, чтобы взять Favicon,
 

Код:
echo $url0 = "http://f1.allesedv.com/16/" . $domain;

 
Вернуть этот адрес
 
http://f1.allesedv.com/16/google.it
 
Ссылка
 
Причина и что в базе данных я сохранил только домен
Я пытался, но я не могу это интегрировать  
 

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

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

Цитата:
Вы должны ввести полный URL маршрута для скачивания Favicon

нет проблемы - какой URL вводите для отображения иконки, такой и есть.
 

Цитата:
Я пытался, но я не могу это интегрировать  

а я не пойму что у вас не получается. указываете URL к файлу на своем сервере и все.

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



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

Код:
 
 
$url = 'https://f1.allesedv.com/16/' . $row['distributor'];
 
$domainparse = parse_url($url, PHP_URL_HOST);
$domain = str_replace('www.','',$domainparse);
$img = 'download3/' . $domain. '_favicon'.'.ico';
file_put_contents($img, file_get_contents($url));
 
echo  '<li>' . '<img width="20" height="20" src="' . $img. '"/>' . '</li>';
 
 

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

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

Цитата:
Вот проблема


Код:
$arrContextOptions=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);  

и далее stream_context_create, как ранее..
 

Цитата:
'https://f1.allesedv.com/16/'

обращаться за файлом куда? к себе же на сервер? зачем?
это не к гуглу обращение.

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 23:50 14-02-2022 | Исправлено: Mavrikii, 23:51 14-02-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
изменился так
Как написано на сайте, но все еще ошибка  
 
https://favicon.allesedv.com/
 

Цитата:
SSL enabled
 
    Embeding in HTTPS-Sites is possible and disired.
    use '//f1.allesedv.com' to link protocol-independent (without 'http:' or 'https:').
 

 

Код:
$url = '//f1.allesedv.com/16/' . $row['distributor'];

 
 

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

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

Цитата:
'//f1.allesedv.com/16/

откуда file_get_contents будет знать как обращаться за файлом, если не указан протокол??
не мудрите.. либо http, либо https.
 

Цитата:
use '//f1.allesedv.com' to link protocol-independent (without 'http:' or 'https:')

это для браузера, так как он запросит через тот протокол, через который открыта страница. php об этом ничего не знает.

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 23:54 14-02-2022 | Исправлено: Mavrikii, 23:55 14-02-2022
zagorisback



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

Цитата:
Parse error: syntax error, unexpected ','  ....  on line 488

 

Код:
 
$get = $row['distributor'];
 
 
$arrContextOptions=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);  
 
$context = stream_context_create($arrContextOptions);
 
$url = 'http://f1.allesedv.com/16/' . $get , false, $context; // line 488
 
 

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

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

Цитата:
$url = 'http://f1.allesedv.com/16/' . $get , false, $context;

где функция file_get_contents?? ну научитесь хоть немного думать.

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 00:55 15-02-2022
zagorisback



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


Код:
 
 
$get = $row['distributor'];
 
 
$arrContextOptions=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);  
 
$context = stream_context_create($arrContextOptions);
 
$url = 'http://f1.allesedv.com/16/' . $get , false, $context;
 
//$url = "http://". $row['distributor'] ."/favicon.ico";
 
$domainparse = parse_url($url, PHP_URL_HOST);
$domain = str_replace('www.','',$domainparse);
$img = 'favicon/' . $domain. '_favicon'.'.ico';
file_put_contents($img, file_get_contents($url));
 
echo  '<li>' . '<img width="20" height="20" src="' . $img. '"/>' . '</li>';
 
 

 
Добавлено:
Я иду спать, увидимся завтра

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

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

Цитата:
$url = 'http://f1.allesedv.com/16/' . $get , false, $context;

думать, думать, что за чушь тут написана..

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



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

Цитата:
думать, думать, что за чушь тут написана..

 
 
Это работает, но ...
 
Проверяет выполнение
 
1)
Это должно проверить, существует ли файл на сервере
Если это присутствует на сервере, загрузите его
Без этого контроля загрузите файл нулевого размера (неверный)
 
2)
Он должен проверить, существует ли файл в папке
Если нет файла, загрузите его
Если это существует не скачать  
 

Код:
 
 
$get = $row['distributor'];
 
 
$arrContextOptions=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);  
 
$context = stream_context_create($arrContextOptions);
 
$url = 'http://f1.allesedv.com/16/' . $get;
 
$domainparse = parse_url($url, PHP_URL_HOST);
$domain = str_replace('www.','',$domainparse);
$img = 'favicon/' . $get. '_favicon'.'.ico';
file_put_contents($img, file_get_contents($url, false, stream_context_create($arrContextOptions)));
 
echo  '<li>' . '<img width="20" height="20" src="' . $img. '"/>' . '</li>';
 
 
 

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

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

Цитата:
Если это присутствует на сервере, загрузите его

file_get_contents будет пустым в случае 404 ошибки.
выдачу сообщения об ошибке можно прикрыть через @, либо https://stackoverflow.com/questions/272361/how-can-i-handle-the-warning-of-file-get-contents-function-in-php
 

Цитата:
Он должен проверить, существует ли файл в папке

https://www.php.net/manual/en/function.file-exists.php

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 07:44 15-02-2022 | Исправлено: Mavrikii, 07:49 15-02-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кажется, работает, но ... логика неверна
 
это правильно, «Эхо« Вид »Фавикон существует»  
 
   
 
Но если нет Фавикона Сообщение неверно
 
Это должно отображать "favicon не существует" и nomatch.gif
 
Motion Picture Marketing Это не домен  
 
   
 
 
 
полный код
 

Код:
 
 
$get = $row['distributor'];
 
 
$arrContextOptions=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);  
 
$context = stream_context_create($arrContextOptions);
 
$url = 'http://f1.allesedv.com/16/' . $get;
 
//$url = "http://". $row['distributor'] ."/favicon.ico";
 
$domainparse = parse_url($url, PHP_URL_HOST);
$domain = str_replace('www.','',$domainparse);
$img = 'favicon/' . $get. '_favicon'.'.ico';
 
 
    
    
    
    $data = 'favicon/' . $get. '_favicon'.'.ico';
        
    $datanomatch = 'favicon/nomatch.gif';
            
            
            /////////////////////////////////////////////
    // Slightly edited version of the function from rommel at rommelsantor dot com. Now it returns a two characters file size which is a bit more convenient to read.
            function human_filesize($bytes, $decimals = 2) {
            $factor = floor((strlen($bytes) - 1) / 3);
            if ($factor > 0) $sz = 'KMGT';
            return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor - 1] . 'B';
}
    
    //echo human_filesize(filesize($data));                
 
    
    //////////////////////////////////////////////
 
 
 
            if (file_exists($data))
            {
                // file already exists error
    echo '<b>'. "<font color='green'>" . 'favicon exist ' . '</font>' . '</b>' . '<br>' ;
            }
            else
                
            file_put_contents($img, file_get_contents($url, false, stream_context_create($arrContextOptions)));
            
            
            
            
            
            
            
            //Check if file exists AND is greater than
            if(file_exists($data) && filesize($data) <200)
            {
                // file dimension 0 exists error
    echo '<br>' . '<b>'. "<font color='red'>" . 'favicon not exist ' . '</font>' . '</b>' . '<li>' . '<img width="20" height="20" src="' . $datanomatch. '"/>' . '</li>';
            }
            else
 
    
    echo  '<li>' . '<img width="20" height="20" src="' . $data. '"/>'  .'<br>' . '<b>Name:</b> ' . $data.'<br>' . '<b>Dimension:</b> ' . filesize($data) . ' bytes' . '(' . human_filesize(filesize($data)) .')' .  '</li>';
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 08:47 15-02-2022 | Исправлено: zagorisback, 14:18 15-02-2022
Mavrikii

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

Цитата:
$context = stream_context_create($arrContextOptions);

зачем, если не используете переменную далее?
 

Цитата:
$img = 'favicon/' . $get. '_favicon'.'.ico';
 
 
    
    
    
    $data = 'favicon/' . $get. '_favicon'.'.ico';
        

зачем две одинаковых переменных??
 

Цитата:
Это должно отображать "favicon не существует" и nomatch.gif

вот только в коде сказано, что если не существует - скачать! и он скачивается.
 

Цитата:
filesize($data) <200

зачем? favicon может быть и меньше 200 байт
 

Цитата:
Motion Picture Marketing Это не домен  

что вы даете скрипту на вход, то он и обрабатывает.
значит такое содержится в
Цитата:
$row['distributor']  

 

Цитата:
echo '<b>'. "<font color='green'>" . 'favicon exist ' . '</font>' . '</b>' . '<br>' ;

зачем так разбивать? что мешает сделать
echo "<b><font color='green'>favicon exists</font></b><br>";
или
echo '<b><font color=\'green\'>favicon exists</font></b><br>';
ps: <font> уже давно не используется, особенно в html5

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 00:20 16-02-2022 | Исправлено: Mavrikii, 00:20 16-02-2022
zagorisback



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

Я исправил код, теперь он работает отлично  
 

Цитата:
file_put_contents($img, file_get_contents($url, false, stream_context_create($arrContextOptions)));  

 
Если я не вставку этого из сертифицированной ошибки SSL  
 

Цитата:
 
$img = 'favicon/' . $get. '_favicon'.'.ico';
$data = 'favicon/' . $get. '_favicon'.'.ico';  
 

 
правильно, только 1 переменная сейчас  
 

Цитата:
 
filesize($data) <200
 

 
Я сделал тесты,
Скачать «Фавикон» нечитаемым, которые являются менее чем 200 байтами
 

Код:
$img = 'favicon/' . $get. '_favicon'.'.ico';  

 
Это было трудно решить
Код загрузки всех с расширением .ico
 
Решается так  
 

Код:
// get MIME_TYPE
$file_info = new finfo(FILEINFO_MIME_TYPE);
$mime_type = $file_info->buffer(file_get_contents($url, false, stream_context_create($arrContextOptions)));
$result = str_replace('image/','',$mime_type);

 

Код:
$data = 'favicon/' . $get. '_favicon'. '.'.$result;

 
 
Спасибо за советы
 

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

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

Цитата:
Если я не вставку этого из сертифицированной ошибки SSL


Цитата:
 file_get_contents($url, false, stream_context_create($arrContextOptions))

либо так, либо  

Цитата:
$context = stream_context_create($arrContextOptions);

а потом использовать переменную $context
зачем оба варианта?
 

Цитата:
Скачать «Фавикон» нечитаемым, которые являются менее чем 200 байтами

достаточно посмотреть чему равно  
file_get_contents($url, false, stream_context_create($arrContextOptions))
перед его сохранением.

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 07:46 16-02-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