timo-71

Рейтинг
63
Регистрация
19.09.2018
skapunker #:
кроме того, платформа - зарубежная, она антиправительственные посты сама продвигает вверх, даже продвигать ничего не надо

🤣

В группу компаний входят такие проекты, как: почтовый сервис, один из крупнейших в рунете порталов «Рамблер», новостное интернет-издание Lenta.ru, общественно-политическое интернет-издание Газета.Ru, развлекательный интернет-портал «Афиша», спортивный интернет-портал «Чемпионат.com», блог-платформа LiveJournal.com, англоязычное интернет-издание INRUSSIA, «Рамблер/касса», «Рамблер/недвижимость»,


https://ramblergroup.com/assets/media/livejournal


Общество с ограниченной ответственностью «Рамблер Групп»
Rambler Logo black low.jpg
Тип Общество с ограниченной ответственностью
Основание 2013
Расположение Россия, Москва
Ключевые фигуры Александр Мамут (генеральный директор и председатель совета директоров)
Отрасль интернет
Число сотрудников 1700 человек
Материнская компания • ПАО «Сбербанк» (100%)
Дочерние компании Rambler News Service, Lenta.ru, Okko, Чемпионат.com
Сайт ramblergroup.com
ArbNet #:
Если не можете додуматься как путь добавить, то вот:

Как то грубовато...

Результат 9 строчек кода был показан выше. Может на скрине будет понятней...


Dram :
('/due/0714fdedbb5d79dcd81894276c0a202c.jpeg')

С учетом ключей путь,  не..

ArbNet #:
 if(is_array($val))$res=$res+Mf($val);else $res[]=$val;

а тут попадет только 0714fdedbb5d79dcd81894276c0a202c.jpeg

$ php -f /var/www/php/p/public/index.php
phpversion: 8.0.2
====
Array
(
    [due] => Array
        (
            [0] => 0714fdedbb5d79dcd81894276c0a202c.jpeg
            [1] => buildings-madrid-business-spain-preview.jpg
            [2] => black.png
        )

    [one] => Array
        (
            [gluboko] => Array
                (
                    [0] => donut.png
                )

            [0] => donut.png
        )

)
Array
(
    [0] => /due/0714fdedbb5d79dcd81894276c0a202c.jpeg
    [1] => /due/buildings-madrid-business-spain-preview.jpg
    [2] => /due/black.png
    [3] => /one/gluboko/donut.png
    [4] => /one/donut.png
)

Такой результат д.б?

А принцип - да, рекурсивный обход массива..


-= Serafim =- #:
Просто интересно - зачем вообще искать такой хостинг?

Может просто математика

reg.ru


ArbNet #:
да и когда стал работать на заводе вообще проект забросил.

Не те аргументы. Вот, вы говорите,  не понятым остались c XML. Так вы и не пояснили, где цимес то. Все, кто, что то делает спросили - а нафига? Понятно, что хтмл документ лучше всего описать - если в терминах php, то stdclass/ассоциативный массив, что, по типу хранения, сводится к json/xml/yaml и т.д.

В итоге,  тайтл, кейвордс, контент и дескрипшн,  можно дополнить много чем, ну например, ближайшими для юзера гео объектами из вашей бд:

===
GEO query for ул. Социалистическая, 1, Ногинск, Московская обл., 142409 coordinates [55.861687, 38.4612583]

{'_id': 'moskow', 'regId': '4de427d8409a2ce6', 'region': ['Москва', '55.755814,37.617635'], 'cid': 'moskva', 'visible': 1, 'location': {'type': 'Point', 'coordinates': [37.617635, 55.755814]}, 'name': 'Москва', 'morph': ['Москва', 'Москвы', 'Москве', 'Москву', 'Москвой', 'о Москве', 'в Москве'], 'delivery': {'company': '', 'adres': ''}}

{'_id': 'vladimir', 'regId': 'c594f28373bff8b9', 'region': ['Владимирская область', '56.013588,40.679166'], 'cid': 'vladimir', 'visible': 1, 'location': {'type': 'Point', 'coordinates': [40.40703, 56.129042]}, 'name': 'Владимир', 'morph': ['Владимир', 'Владимира', 'Владимиру', 'Владимира', 'Владимиром', 'о Владимире', 'во Владимире'], 'delivery': {'company': 'Деловые Линии', 'adres': 'Куйбышева ул., 4'}}

{'_id': 'ryazan', 'regId': '03bb9b253cc7f66a', 'region': ['Рязанская область', '54.333363,40.62524'], 'cid': 'riazan', 'visible': 1, 'location': {'type': 'Point', 'coordinates': [39.734928, 54.629148]}, 'name': 'Рязань', 'morph': ['Рязань', 'Рязани', 'Рязани', 'Рязань', 'Рязанью', 'о Рязани', 'в Рязани'], 'delivery': {'company': 'Деловые Линии', 'adres': 'Окружная дорога, 185 км, стр. 6а'}}

{'_id': 'tver', 'regId': '3879ab7468a95a5f', 'region': ['Тверская область', '57.093033,34.706195'], 'cid': 'tver', 'visible': 1, 'location': {'type': 'Point', 'coordinates': [35.911896, 56.859611]}, 'name': 'Тверь', 'morph': ['Тверь', 'Твери', 'Твери', 'Тверь', 'Тверью', 'о Твери', 'в Твери'], 'delivery': {'company': 'Деловые Линии', 'adres': 'п. Элеватор, 3-й переулок, 6, стр. 1'}}

{'_id': 'tula', 'regId': '82cc39fcd2313c01', 'region': ['Тульская область', '53.888064,37.575693'], 'cid': 'tula', 'visible': 1, 'location': {'type': 'Point', 'coordinates': [37.617752, 54.193033]}, 'name': 'Тула', 'morph': ['Тула', 'Тулы', 'Туле', 'Тулу', 'Тулой', 'о Туле', 'в Туле'], 'delivery': {'company': 'Деловые Линии', 'adres': 'д. Нижнее Елькино, 77'}}

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

query = {
    'visible':1,
    'location': {
        '$near': SON([
            ('$geometry', SON([
                ('type', 'Point'),
                ('coordinates',
                [coords[1], coords[0]])
            ])),
            ('$maxDistance', 300000)]
            )
        }
    }


async for doc in coll.find(query).limit(5):
    .....

Просто совет. Если ищете поддержки в среде разработчиков, попытайтесь показать, где ваш инструмент лучше.

Vladson #:
Не можно :) Потому что там не просто MD5

password-hash

$ php -a
Interactive shell

php > print password_verify ( 'parovz' , '$2y$10$mmd3ZNDPVPTtXkoXUzc5UuDEzuw71h88s1yKwUW9lxKTnIdzGKHW2' );
php > print password_verify ( 'parovoz' , '$2y$10$mmd3ZNDPVPTtXkoXUzc5UuDEzuw71h88s1yKwUW9lxKTnIdzGKHW2' );
1
php > print password_hash ( 'parovoz' , PASSWORD_DEFAULT);
$2y$10$Daq0q49UJIDivQl3mkjjv.e.gPom0Yl6UABuIi.jdbbE/BSzWrmJi
php > print password_verify ( 'parovoz' , '$2y$10$Daq0q49UJIDivQl3mkjjv.e.gPom0Yl6UABuIi.jdbbE/BSzWrmJi' );
1

Алгоритм получения хеша подсмотреть в коде

runseoman #:
пробовал, не помогло

Там было написано добавить. К тому что у вас было

runseoman #:

$filename="http://dantonehome.com/upload/iblock/0ee/0ee52d9882258fd40c3007f458abcbce.jpg";

$handle = curl_init($filename);

curl_setopt($handle, CURLOPT_FOLLOWLOCATION, true);

curl_setopt($handle,  CURLOPT_RETURNTRANSFER, TRUE);

curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);

Понятно, что и имена переменных привести в соответствие при этом.

runseoman #:
мне то средствами PHP получить файл конечный и скачать
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

добавить. Ну или www к урлу

Aisamiery #:
асинхронность в данном случае это немного другой подход

...

то процесс может кинуть запрос в БД и не ждать ответа а пойти заниматься более полезными делами? =))

Точно.  И если PHP уже готов  не только

$socket = new React\Socket\Server(8080, $loop);
$server->listen($socket);

, а и на уровне каждого $socket, асинхронно работать с БД, то круто.

# -*- coding: utf-8 -*-

import asyncio
#from aiorun import run
from motor.motor_asyncio import AsyncIOMotorClient
from time import time
from dsn import dsn
import json

t0 = time() #старт, потом в тасках время прикинем

db = dsn.split('/')[-1]
db = AsyncIOMotorClient(dsn)[db]
print('mongo_started at %s' % t0)

async def f(c, f, n):
    t = time()
    a = []
    async for document in db[c].find(f):
        a.append(document)
    t_end = time()
    te = (t_end-t)*1000
    
    ''' 
        n  : Индекс задачи, 
        te : время затраченное на операцию, мс
        (t_end-t0)*1000 : время cо старта скрипта,мс,
        len(a) : кол-во возвращенных объектов
    '''
    
    print( '''
          TaskNum %s;   Collection: %s;
          op_time:%.4f; All_time:%.4f;
          result_Len:%s;
          filter:%s''' % ( n, c, te, (t_end-t0)*1000, len(a), f ))
   
   
# задачи,  
jobs = (
        ( 'avto_koleso', {} ),
        ( 'avto_koleso_pref', {} ),
        ( 'avto_koleso', {'vendor':'Mazda'} ),
        ( 'avto_koleso', {'vendor':'Ford'} ),
        ( 'koleso', {'name':'Atturo'} ),
        ( 'avto_koleso_pref', {'_id':'Ford'} ),
        ( 'koleso', {} ),
        ( 'avto_koleso', {'vendor': 'УАЗ'} ),
)


print( 'Tasks\n', json.dumps(jobs, indent=2, ensure_ascii=False) )

if __name__ == '__main__':
    
    loop = asyncio.get_event_loop()
    tasks = [ f(v[0], v[1], i) for i, v in  enumerate(jobs)]
    #на каждую задачу запрос в коллекцию 
    w = asyncio.wait(tasks)
    loop.run_until_complete(w)
    loop.close()

Немного кода, показывает

mongo_started at 1613429516.9852383
Tasks
 [
  [
    "avto_koleso",
    {}
  ],
  [
    "avto_koleso_pref",
    {}
  ],
  [
    "avto_koleso",
    {
      "vendor": "Mazda"
    }
  ],
  [
    "avto_koleso",
    {
      "vendor": "Ford"
    }
  ],
  [
    "koleso",
    {
      "name": "Atturo"
    }
  ],
  [
    "avto_koleso_pref",
    {
      "_id": "Ford"
    }
  ],
  [
    "koleso",
    {}
  ],
  [
    "avto_koleso",
    {
      "vendor": "УАЗ"
    }
  ]
]

          TaskNum 7;   Collection: avto_koleso;
          op_time:17.0386; All_time:19.1250;
          result_Len:150;
          filter:{'vendor': 'УАЗ'}

          TaskNum 5;   Collection: avto_koleso_pref;
          op_time:23.0494; All_time:24.2157;
          result_Len:1;
          filter:{'_id': 'Ford'}

          TaskNum 4;   Collection: koleso;
          op_time:83.2248; All_time:85.6171;
          result_Len:1;
          filter:{'name': 'Atturo'}

          TaskNum 2;   Collection: avto_koleso;
          op_time:88.8464; All_time:89.0193;
          result_Len:1610;
          filter:{'vendor': 'Mazda'}

          TaskNum 1;   Collection: avto_koleso_pref;
          op_time:87.5850; All_time:90.7078;
          result_Len:93;
          filter:{}

          TaskNum 3;   Collection: avto_koleso;
          op_time:97.7185; All_time:99.0567;
          result_Len:3493;
          filter:{'vendor': 'Ford'}

          TaskNum 6;   Collection: koleso;
          op_time:105.6306; All_time:106.4796;
          result_Len:208;
          filter:{}

          TaskNum 0;   Collection: avto_koleso;
          op_time:1095.3655; All_time:1098.2263;
          result_Len:92002;
          filter:{}
(pyenv) [www@localhost conf.d]$ 

Задачи не по порядку, самый тяжелый запрос, стоявший первым, выполнен последним. И суммарное время All_time: 1098.2263;  подозрительно меньше, даже времени выполнения таск 0 + таск 6: 1095.3655 + 105.6306 = 1200,9961

Если, кто то думает, 6 сек и async воткнем во фреймворк, то он большой оптимист.

ArbNet #:
Я буду делать простые, но полезные и нужные сайты, вот только нужны ещё и администраторы, модераторы и наполнители контентом.

Вам по целевую аудиторию выше говорили. Она, в вашем случае,  в обе стороны. Кому будут нужны ваши простые, но полезные и нужные сайты. Трафик откуда?

С другой стороны: Наполнители контентом, говорите? Ну, вот они - https://searchengines.guru/ru/forum/development/copywriting и еще много где. Но, в основном - деньги на стулья.И никто не будет вестись на - давай поднажми, а потом - озолотишься.

ArbNet #:
Так асинхронности то пока как таковой нет, особой необходимости в ней пока тоже

Да ну.. Тут, кстати подходим, к тому, что для "простые, но полезные и нужные сайты" уже все придумали. Нужны решения, как простые, оставить простыми, но сделать более функциональными. В том числе и быстрее и устойчивей к нагрузкам.

Всего: 541