Content-Type application/atom+xml сменить на text/xml или application/xml
1) text/xml charset в заголовке, если его нет будет применен ASCII
3) application/xml если charset не указан, то, если есть в документе будут взят оттуда
Предпочтительней : application/xml
Документ https://www.modnytsi.top/sitemap.xml отдает такие заголовки:
Array( [0] => HTTP/1.0 200 OK [1] => X-Robots-Tag: noindex [2] => Content-Type: application/atom+xml; charset=UTF-8 [3] => Last-Modified: Thu, 29 Nov 2018 13:52:18 GMT [4] => Date: Thu, 29 Nov 2018 15:22:37 GMT [5] => Server: Blogger Render Server 1.0 [6] => Cache-Control: private [7] => X-XSS-Protection: 1; mode=block [8] => X-Frame-Options: SAMEORIGIN [9] => Accept-Ranges: none [10] => Vary: Accept-Encoding)
Не заметил X-Robots-Tag: noindex , правда как к тому относится ПС точно не знаю, но думаю он тут не нужен
Это не было проблемой для сайта, у меня не типичный подход к категориям;)
А просто пример хрени, которая приходит от 1с. Посыл был в том, что данные всегда (не видел иного) соответствуют тому что у них внутри 1с и они корректны для разбора, если не было проблем с передачей (память, время и пр лимит). Поэтому, скорее не
а посмотреть на скрипт сайта, мож там тупо 50 метровый хмл сначала считали файл_гет_контентс в переменную, потом обошли и массив из него сделали (уже грубо прилично больше чем 50+50 ) который потом попытались обойти и скуел запрос слепить, который еще 50сильно+ метров. А памяти скрипту пхп.ини дал, ну ладно 128м😂
1c для многих основа бизнеса, а сайт лишь один из каналов привлечения клиентов. Как не прискорбно, не наоборот😂
1с, вероятно, корректно работает, в рамках ваших ее изменений. Скорее в модуле обмена что то не так.
Зы: Я не спец по 1с, но повидал разные offers.xml и import.xml, та еще бяка:( при этом, как ни странно, адекватно отражают состояние базы 1с
<?xml version="1.0" encoding="UTF-8"?> <КоммерческаяИнформация ВерсияСхемы="2.05" ДатаФормирования="2018-10-09T09:42:43"> <Классификатор>
Не видел, что бы оно корректно не отдавалось. Приходит, синтаксически нормально разбирается. Но внутри полный бизнес
Что часто было:
<Группы> <Группа>
Категории товаров. На пальцах: группа телефоны, неожиданно оказывалась в автомобилях, а мерседес в матрасах.
все совпадения случайны По факту же, это оказывалось равным текущему состоянию их базы. В 1с ровно так же. Кто то, почему то перенес телефоны в автомобили и т.д.😂
ЗыЗы: 1сники те еще *, с ними ухо востро. Как и сайтостроители🍿
Хозяин-барин:)
Но, гибкость и независимость и трудозатраты в 2 команды
pip install pymorphy2 pip install -U pymorphy2-dicts-ru
Похожая задача была, касательно лемматизации, склонения слов и прочим
Выбирал м/у mystem и pymorphy2
Остановился на pymorphy2, несмотря на то,что 1 раз увидел Python. Гибче гораздо, данные можно отдавать в любом нужном варианте☝
Затраты:
#!/usr/bin/env python36 # -*- coding: utf-8 -*- # Requires Python 3+ # Pymorphy2 support for jcms import sys, pymorphy2, json, base64, locale, codecs #locale, codecs for php exec ( fix UnicodeEncodeError: 'ascii' codec can't encode characters in position 10-19: ordinal not in range(128)) def inflect(lsts, mth): els = lsts.split() ww = [] for tok in els: if len( tok ) > 2: ww.append( morph.parse(tok)[0].inflect({mth}).word ) return ww locale.setlocale(locale.LC_ALL, "ru_RU.UTF-8") if "detach" in dir(sys.stdout): sys.stdout = codecs.getwriter('utf-8')(sys.stdout.detach()) sys.stdin = codecs.getwriter('utf-8')(sys.stdin.detach()) if __name__ == "__main__": q = '' m = '' if len (sys.argv) > 2: m = sys.argv[1] q = sys.argv[2] else: print('Wrong parameters') exit(1) if m in [ "nomn", "gent", "datv", "accs", "ablt", "loct", "voct", "gen2", "loc2" ]: morph = pymorphy2.MorphAnalyzer() infl = inflect(q, m) print( infl ) else: print('Wrong parameter to inflect') exit(3)
(прошу знатоков python строго не судить за код, повторюсь, 1 блин, но идея понятна)
В итоге
$ python36 /home/web/py/morph/inflect gent "Детская библиотека"
['детской', 'библиотеки']
$ python36 /home/web/py/morph/inflect loct "Детская библиотека"
['детской', 'библиотеке']
* - когда надо было импортировать результат в php
$arg = [ '-nomn', 'Уфу,Магадану,Казани,Санкт Петербурге,Москвы,Самаре,Нижнем Новгороде,барнаулу,новый уренгой,пельсисков' ]; echo print_rh($arg, 'Исходные данные для inflect'); $lemm = 'python36 /home/web/py/morph/pymorph.py ' . base64_encode( json_encode( $arg ) ); $output = exec($lemm, $r, $rv); echo print_rh( json_decode($output), 'lemma ' ), print_rh(\logger::logit( 'End pymorph', 'ok', __METHOD__ ), 'End'); /* Result Исходные данные для inflect Array ( [0] => -nomn [1] => Уфу,Магадану,Казани,Санкт Петербурге,Москвы,Самарой,Нижнем Новгороде,барнаулу,новый уренгой,пельсисков ) lemma stdClass Object ( [pymorphy] => Array ( [0] => уфа [1] => магадан [2] => казань [3] => санкт петербург [4] => москва [5] => самара [6] => нижний новгород [7] => барнаул [8] => новый уренгой [9] => пельсиски ) ) End Array ( [msg] => End pymorph [status] => ok [point] => Jcms\Intro\User::geomakenew [ecode] => 0 [afterstart] => 65.81 ms [afprevious] => 52.45 ms [details] => [mem] => 0.48/2.00, mb ) */
Рarse error победили. следующие ошибки:)
$words = htmlspecialchars($words);
зачем? тем более потом
$arraywords = explode(" ", $words); foreach($arraywords as $key => $value) { ..... $query_search .= '`id` LIKE "%'.$value.'%" OR `name` LIKE "%'.$value.'%"'; ..... }
Может просто вырезать все, что не похоже на буквы и цифры, потом перебрать и, может быть, стеммером обработать, а может нет:) Чтобы получить в итоге:
SELECT * FROM students WHERE `id` LIKE "%пет%" OR `name` LIKE "%пет%";
вместо
SELECT * FROM students WHERE `id` LIKE "%"e;петя"e;%" OR `name` LIKE "%"e;петя"e;%";
для запроса петя в кавычках
$words = '"петя"';
К необратимым, скорее нет. Но, могут быть косяки когда много репозитариев и в разных из них пакеты одинаковых приложений разных версий. Ключ --enablerepo тут помогает, например php 7.2 будет корректен если поставлен и обновляется из одного источника:
Вероятно, ставился не при помощи yum:) Для установки: yum install phpmyadmin , но это и хорошо что обновить решили а не ставить. Возможно, конфликт случился бы, не знаю. Кстати, хорошая шпаргалка по желтому установщику.
Поспешили, обычно в /var/log/httpd|nginx|apache2|или что там у вас/error*log можно найти почему 500☝ Эти знания и сейчас там лежат, нужно только найти и посмотреть.
<Ванга>: Вероятно, владелец и права старого каталога phpmyadmin и нового не были одинаковыми</Ванга>
Но, хорошо, что хорошо кончается😂
Да. Только, phpmyadmin может использовать и другие места /etc/phpMyAdmin , /var/lib/phpMyAdmin для каких то файликов...
Да. Там обычные php скрипты. Но, нюансы конфигурации + политика безопасности. Вот что оф.сайт говорит по поводу Upgrading
Да, с учетом нюансов...
Зы: Ради интереса: что такого практически ценного есть в phpMyAdmin 4.8.3 а нет в
Вероятно последнее, sudo yum deplist phpmyadmin - только php и webserver, а эти вещи в CentOS, в отличии от многого другого в репо появляются шустро..
По идее не должно быть проблем, yum такой командой обновит только phpmyadmin и может быть зависимости .
Соответственно, не тронет это
или настройки другого веб сервера, если у вас не nginx+php-fpm
Вот не помню, при установке - точно, а может и при обновлении тоже, были ошибки pma связанные с правами на некоторые папки/файлы. В моем случае (машина для локальной разработки) pma - root, а php - от nginx . Но это легко решается.
Плюс, всегда можно, если что то пошло не так