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

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

Цитата:
Как и код, чтобы вставить его?

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

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



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

Цитата:
Mavrikii

 
хорошо, спасибо

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



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

Этот код отделяет URL с доменом
Проблема, что URL-адреса атакованы
Я должен использовать «взрыва», чтобы отделить их, но я не понимаю, где это поставить
 

Код:
foreach(explode("\r", $row->indirizzo)

 
   
 

Код:
 
 
<?php
 
 
 
function parse_url_all($url){
    $url = substr($url,0,4)=='http'? $url: 'http://'.$url;
    $d = parse_url($url);
    $tmp = explode('.',$d['host']);
    $n = count($tmp);
    if ($n>=2){
        if ($n==4 || ($n==3 && strlen($tmp[($n-2)])<=3)){
            $d['domain'] = $tmp[($n-3)].".".$tmp[($n-2)].".".$tmp[($n-1)];
            $d['domainX'] = $tmp[($n-3)];
        } else {
            $d['domain'] = $tmp[($n-2)].".".$tmp[($n-1)];
            $d['domainX'] = $tmp[($n-2)];
        }
    }
    return $d;
}
 
 
$urls = $row->indirizzo;
 
 
echo '<div class="container" style="width:60%";>';
echo "<table id=\"customers\" class=\"table table-striped w-auto table-bordered\">";
echo "<thead><tr>
<th> URL </th>
<th> Host </th>
<th> Domain </th>
<th> Domain X </th>
</thead>
</tr>";
foreach ((array) $urls as $url) {
    $info = parse_url_all($url);
    echo "<tr>
    <td>".$url."</td>
    <td>".$info['host']. "</td>
    <td>".$info['domain']."</td>
    <td>".$info['domainX']."</td>
    </tr>";
}
echo "</table></div>";
 
?>
 


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

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

Цитата:
foreach ((array) $urls as $url) {

вот после этого строки и ставить, для $url

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



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


Код:
 
$urls = explode("\r", $urls);
foreach ((array) $urls as $url) {
    $info = parse_url_all($url);
 

 
 

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

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
еще раз повторю - разбивать по \n, а не \r
так как
Цитата:
function parse_url_all($url){

не понимает этого.
никаких лишних символов слева или справа от $url.
либо  
parse_url_all(trim($url));

Всего записей: 15114 | Зарегистр. 20-09-2014 | Отправлено: 21:47 08-02-2022
zagorisback



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

понял сейчас,
Я был убежден, что функция «explode» должна была быть использована
 
Спасибо Mavrikii
 

Код:
 
$urls = explode("\r", $urls);
foreach ((array) $urls as $url) {
    $info = parse_url_all(trim($url));
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 21:56 08-02-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня есть этот HTML-код (пример)

 

Цитата:
<div id="mod-websites-box">
<div id="id904">
<div class="box-title">Websites</div>
<div class="box-body">
<ul style="margin: 0; padding: 0; list-style-type: none">
<li class="mt-1 mt-md-0">
<a target="_blank" class="websiteLink" rel="nofollow noopener" href="/out/website/6394-network1.com/">web 1</a>
<a title="website /sets overview" class="internalWebsiteLink" href="/websites/6394/network1.com/">i</a>
<span> <span class='alias'>Google</span> <span class='descr'>Test, test2, test3</span></span>
<a class="editLogo" title="edit" id="id8f9" href="#">&#9998;</a>
<div id="id905" style="display:none">
<div id="id906" hidden="" data-wicket-placeholder=""></div>
</div>
</li>
<li class="mt-1 mt-md-0">
<a target="_blank" class="websiteLink" rel="nofollow noopener" href="/out/website/2488-network2.com/">web 2</a>
<a title="website /sets overview" class="internalWebsiteLink" href="/websites/2488/network2.com/">i</a>
<span> <span class='alias'>Yahoo</span> <span class='descr'>test, Test2, test3, test4</span></span>
<a class="editLogo" title="edit" id="id8fa" href="#">&#9998;</a>
<div id="id907" style="display:none">
<div id="id908" hidden="" data-wicket-placeholder=""></div>
</div>
</li>
<li class="mt-1 mt-md-0">
<a target="_blank" class="websiteLink" rel="nofollow noopener" href="/out/website/2489-network3.com/">web 3</a>
<a title="website /sets overview" class="internalWebsiteLink" href="/websites/2488/network3.com/">i</a>
<span> <span class='alias'>Gmail</span> <span class='descr'></span></span>
<a class="editLogo" title="edit" id="id8fa" href="#">&#9998;</a>
<div id="id907" style="display:none">
<div id="id908" hidden="" data-wicket-placeholder=""></div>
</div>
</li>
</li>
<li class="mt-1 mt-md-0">
<a target="_blank" class="websiteLink" rel="nofollow noopener" href="/out/website/2490-network4.com/">web 4</a>
<a title="website /sets overview" class="internalWebsiteLink" href="/websites/2488/network4.com/">i</a>
<span> <span class='alias'>Bing</span> <span class='descr'>test4 test5 test6</span></span>
<a class="editLogo" title="edit" id="id8fa" href="#">&#9998;</a>
<div id="id907" style="display:none">
<div id="id908" hidden="" data-wicket-placeholder=""></div>
</div>
</li>
</div>

 
URL-адресов отображаются так
 
   
 

Цитата:
 
 
http://cinema/out/website/6394-network1.com/
 
http://cinema/out/website/2488-network2.com/
 
http://cinema/out/website/2489-network3.com/
 
http://cinema/out/website/2490-network4.com/

 
 
Я хотел бы устранить часть URL-адресов и показать это так
 

Цитата:
http://network1.com/
 
http://network2.com/
 
http://network3.com/
 
http://network4.com/

 
 
У меня есть этот код из другого раздела, но я не понимаю, как резать URL  
 
 

Код:
 
 
<?php
    
$haystack5 = $row->websites;
 
preg_match_all('#href=\"/out/website[^"]+\">(.*?)</a>#', $haystack5, $matches2);  
$data2 = $matches2[1];
$arr = $data2;
foreach($arr as $url);
'<a href="//' . $url . '" target="_blank">' . $url . '</a>';
            
echo $row->websites;           
             
?>
 
 

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

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

Цитата:
У меня есть этот HTML-код (пример)

создайте на его основе php код
вот внутри цикла, где будут повторяющиеся элементы <li>, там и парсим строку.

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



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

Цитата:
создайте на его основе php код
вот внутри цикла, где будут повторяющиеся элементы <li>, там и парсим строку.
 

 

 
 
HTML-код должен оставаться неповрежденным,
Только в просмотре замены URL

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

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

Цитата:
HTML-код должен оставаться неповрежденным,

и что? при чем тут тогда php? нужно делать замену в самом тексте?
он же откуда то берется, считываем, делаем замену регулярным выражением.
не preg_match, а preg_replace и вопрос для PHP: Регулярные выражения (RegExp, Regular, eregi, preg)
 
или нужно парсить html код и вытащить из него ссылки и делать что то с ними отдельно?

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
точный,
Только URL-адреса должны быть заменены
Пример от этого
 
 

Код:
<a target="_blank" class="websiteLink" rel="nofollow noopener" href="/out/website/6394-network1.com/">web 1</a>  
 
<a target="_blank" class="websiteLink" rel="nofollow noopener" href="/out/website/2488-network2.com/">web 2</a>  
 
<a target="_blank" class="websiteLink" rel="nofollow noopener" href="/out/website/2489-network3.com/">web 3</a>  
 
<a target="_blank" class="websiteLink" rel="nofollow noopener" href="/out/website/2490-network4.com/">web 4</a>  

 
 

Цитата:
 
http://cinema/out/website/6394-network1.com/
 
http://cinema/out/website/2488-network2.com/
 
http://cinema/out/website/2489-network3.com/
 
http://cinema/out/website/2490-network4.com/
 

 
таким образом  
 

Цитата:
 
http://network1.com/
 
http://network2.com/
 
http://network3.com/
 
http://network4.com/
 

 

Цитата:
и что? при чем тут тогда php?

 
PHP служит, потому что код HTML и в базе данных MySQL в поле websites
 

Код:
echo $row->websites;  

 
 

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

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

Цитата:
потому что код HTML и в базе данных MySQL в поле website

$html = preg_replace('/"\/out\/website\/\d+-(.*)"/U', '"http://$1"', $row->websites);

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



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

Код:
?php  
        
// code by Mavrikii - 2022-02-12
        
echo $html = preg_replace('/"\/out\/website\/\d+-(.*)"/', '"http://$1"', $row->websites);
        
        
?>

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Через этот код JavaScript, сделанный из StackoverFlow.com
Вы можете взять FAVICON, связанный с доменом сайта
 
пример:
 
   
 
Ссылка
 
То, что я хотел бы сделать, и извлечь домены из поля «links» ($row1->links) , сохраненные в моей базе данных MySQL, и помещают массивы в код JavaScript, в области «AddFavicon»
 
С этой процедурой мне не нужно вводить URL-адреса вручную  
 
Имя поля  
Код:
links

 
Можно ли сделать это?
 

Код:
foreach(explode("\r", $row['links']) as $url)
 
echo '<li>' . '<a href="' . $url . '" target="_blank">' . $url .'</a>' . '</li>';

 
URL-адреса отображаются так сейчас
 
   
 
Так что я должен увидеть «favicon» сначала, а затем весь URL  
 
Код JavaScript  
 

Код:
 
<script type="text/javascript">
 
const KRequestFaviconGitHub = 'https://favicons.githubusercontent.com/';
const KRequestFaviconGoogle = 'https://www.google.com/s2/favicons?domain=';
 
const KDefaultUrl = KRequestFaviconGoogle;
 
// We rely on pre-defined hostname configurations
const hostnames = {
    "stackoverflow.com": { url:KRequestFaviconGoogle+"stackoverflow.com", invert:0 },
    "theregister.co.uk": { url:KRequestFaviconGoogle+"theregister.co.uk", invert:1 },
    "github.com": { url:KRequestFaviconGitHub+"github.com", invert:1 },
    "android.googlesource.com": { url:KRequestFaviconGoogle+"googlesource.com", invert:0 },
    "developer.android.com": { url:KRequestFaviconGitHub+"developer.android.com", invert:0 }
};
 
document.addEventListener('DOMContentLoaded', function(event) {
 
    addFavicon("forum.ru-board.com");
    addFavicon("stackoverflow.com");
    addFavicon("github.com");
    addFavicon("amazon.com");
    addFavicon("microsoft.com");
    addFavicon("apple.com");
    addFavicon("hopfully.that.domain.does.not.exists.nowaythisisavaliddomain.fart");
 
});
 
/**
*
*/
function addFavicon(aDomain)
{
    var a = document.createElement("a");
    a.href = "http://" + aDomain;
    //a.style.display = "block";
    var div = document.createElement("div");
    div.innerText = aDomain;
    div.style.verticalAlign = "middle";
    div.style.display = "inline-block";
    var img = document.createElement("img");
    img.className = "link-favicon";
    img.style.width = "16px";
    img.style.height = "16px";
    img.style.verticalAlign = "middle";
    img.style.display = "inline-block";
    img.style.marginRight = "4px";
    a.prepend(img);
    a.appendChild(div);
    document.body.appendChild(a);
    document.body.appendChild(document.createElement("p"));
 
    const conf = hostnames[aDomain]
    if (conf==null)
    {
        img.src = KDefaultUrl+aDomain;
    }
    else
    {
        img.src = conf.url;
        img.style.filter = "invert(" + conf.invert + ")";
    }
}
</script>
 
 

 
Обновлено:  
 
С этим кодом мне удалось извлечь домены
 

Код:
$haystack2 = $row->links;  
 
            preg_match_all('/(?m)http(?:s?):\/\/.*?([^\.\/]+?\.[^\.]+?)(?:\/|$)/', $haystack2, $matches2);  
            $data2 = $matches2[1];
            $data2 = array_filter(array_map('trim', $data2));
            natsort($data2);  
        echo '<b>' . join(' <br> ' , $data2 ) . '</b>';
        echo "<br>\n";
        echo '<font color="blue">' . '<b>' . count( $data2 ) . '</b>' . '</font>' . " web were found.";  
 
    echo "<br>\n";

 
 
   
 
 
Проблема остается, как пройти результат в коде JavaScript
 

Цитата:
document.addEventListener('DOMContentLoaded', function(event) {
 
 
    addFavicon("forum.ru-board.com");

 

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обновление 2:
 
Мы оставляем все код JavaScript, который я написал выше
 
Код, который выбирает значок и только это  
 

Код:
http://www.google.com/s2/favicons?domain=

 
   
 

Код:
echo '<img src="http://www.google.com/s2/favicons?domain='.$url.'"></img>';

 
Мне удалось скачать Favicons,  
 
Проблема, которая не соответствует его соответствующему массиву, URL следует сочетаться с Favicon
 
как сделать?
 
Текущий PHP код
 

Код:
 
 
$haystack2 = $row['links'];  
 
            preg_match_all('/(?m)http(?:s?):\/\/.*?([^\.\/]+?\.[^\.]+?)(?:\/|$)/', $haystack2, $matches2);  
            $data2 = $matches2[1];
            $data2 = array_filter(array_map('trim', $data2));
            natsort($data2);  
        echo '<b>' . join(' <br> ' , $data2 ) . '</b>';
        echo "<br>\n";
        echo '<font color="blue">' . '<b>' . count( $data2 ) . '</b>' . '</font>' . " web were found.";  
        
        
        
        $arr = $data2;
            foreach($arr as $url)
        
        echo '<img src="http://www.google.com/s2/favicons?domain='.$url.'"></img>';
 

 
-------------------------------------------------------------------------------
 
Добавлено 3:
 
 
идеально,
Я комбинировал значок с доменом,
 
Теперь есть проблема
 
Вам нужно просмотреть оригинальный URL рядом с значком, а не домен
 
Домен служит только коду, чтобы взять значок  
 
   
 
Я думал, как это сделать, но я застрял  
 

Код:
 
 
$haystack2 = $row['links'];  
 
            preg_match_all('/(?m)http(?:s?):\/\/.*?([^\.\/]+?\.[^\.]+?)(?:\/|$)/', $haystack2, $matches2);  
            $data2 = $matches2[1];
            $data2 = array_filter(array_map('trim', $data2));
            natsort($data2);  
        echo '<b>' . join(' <br> ' , $data2 ) . '</b>';
        echo "<br>\n";
        echo '<font color="blue">' . '<b>' . count( $data2 ) . '</b>' . '</font>' . " web were found.";  
        
        echo '<br>';
        
        $arr = $data2;
            foreach($arr as $url)
            
            
        
            
        
        echo   '<img src="http://www.google.com/s2/favicons?domain='.$url.'"></img>' . ' &nbsp; '  . $url . '<br>';
 

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

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

Цитата:
$arr = $data2;

зачем переопределять?
 

Цитата:
$matches2[1]

$matches2[0] будет содержать всю строку попавшую под регулярное выражение
 
foreach($data2 as $index => $url)
echo   '<img src="http://www.google.com/s2/favicons?domain=' . $url . '"></img>' . ' &nbsp; '  . $matches2[0][$index] . '<br>';

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



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

Цитата:
foreach($data2 as $index => $url)
echo   '<img src="http://www.google.com/s2/favicons?domain=' . $url . '"></img>' . ' &nbsp; '  . $matches2[0][$index] . '<br>';
 

 
Оригинальные адреса это показать,
без regex
 
   
 
Это разрезаны  
 

Цитата:
 
https://www.celebsfacts.com/
  https://www.imdb.com/
  http://www.reallindablair.com/
  https://twitter.com/
  https://it.wikipedia.org/
  https://it.wikipedia.org/
 

 
Но был создан бесконечный цикл  
 
 

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

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

Цитата:
Но был создан бесконечный цикл  

этот цикл не может быть бесконечным, он обрабатывает все тот же $data2 массив.
значит есть еще цикл выше, который тут не показан.
в каждом одинаковые URL, которые и обрабатываются в каждом цикле.
 

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



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

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

 
Вы правы, был еще один «foreach» выше, я забыл отменить  
 

Код:
$arr = $data2;
            foreach($arr as $url)
 

 
Проблема всего адреса остается  
 
Добавлено:
 
Выше оригинальных URL-адресов я хочу показать ниже  
 
потому что ниже они урезаны, я не понимаю  
 
 
   
 
 

Код:
 
 
<?php
 
            //Первый код с полными URL-адресами  
            foreach(explode("\r", $row['links']) as $url0)
 
            echo '<li>' . '<a href="' . $url0 . '" target="_blank">' . $url0 .'</a>' . '</li>';
   
 
 
 
        // Второй код с Favicon и сократить URL  
        $haystack2 = $row['links'];  
 
            preg_match_all('/(?m)http(?:s?):\/\/.*?([^\.\/]+?\.[^\.]+?)(?:\/|$)/', $haystack2, $matches2);  
            $data2 = $matches2[1];
            $data2 = array_filter(array_map('trim', $data2));
            natsort($data2);  
          
        
        echo '<br>';
        
        
        foreach($data2 as $index => $url)
        echo   '<img src="http://www.google.com/s2/favicons?domain=' . $url . '"></img>' . ' &nbsp; '  . $matches2[0][$index] . '<br>';
 
?>
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 00:34 14-02-2022 | Исправлено: zagorisback, 01:00 14-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