PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (24): [1] 2 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 352
broshurkaplus Отправлено: 01 Октября, 2018 - 20:22:25 • Тема: хранение и обработка урлов для разных языков • Форум: Хранение данных, их вывод и обработка

Ответов: 3
Просмотров: 1691
как пример:

пример - статья с заголовком
ΔΕΝ ΣΕ ΕΝΔΙΑΦΈΡΕΙ ΠΩΣ ΑΙΣΘΆΝΟΜΑΙ
урл для него транслитерированный
den-se-endiaferei-pos-aisthanoma i

статью перевел вася с заголовком
ПЕРЕВОД ТЕСТ
и урлом
perevod-test

перевел мойша с заголовком
למנצח על-המחולות
и урлом
lm-sh-al-hmhwlwt
ТУТ уже нет гласных и много вариантов для транслитерации

дальше ее перевел ахмед с заголовком
الأحلام، وأنهم جميعا الحصول عليها
и урлом
?
тут тоже нет гласных и 100500 языковых наречий и символов, что все сразу и не учтёш для замены, получаем малочитаемый текст урла, strtr() не получается, пробую заменяеть посимвольно с проверкой есть ли исходный символ как ключ для замены, и получаем для непредусмотренных символов ошибку - сохранение статьи не проходит
символа ا нет в массиве
символа ل нет в массиве

при rawurlencode() для الأحلام، وأنهم جميعا الحصول عليها имеем для хранеия в бд
string(186)
CODE (html):
скопировать код в буфер обмена
  1. "%D8%A7%D9%84%D8%A3%D8%AD%D9%84%D8%A7%D9%85%D8%8C%20%D9%88%D8%A3%D9%86%D9%87%D9%85%20%D8%AC%D9%85%D9%8A%D8%B9%D8%A7%20%D8%A7%D9%84%D8%AD%D8%B5%D9%88%D9%84%20%D8%B9%D9%84%D9%8A%D9%87%D8%A7"

а если заголовок подлиннее

если применить rawurlencode() для "сложных языков"и в бд, то получается длинно, хоть красиво при отображении ссылки для пользователя, (гуглу ведь пофиг)

как правильнее все организовать, ваше видение этого, как хранить преобразованные ссылки в бд индексить их, иль преобразовывать на лету при вводе выводе, а хранить сам текст

както так. ?

обернул в html, а то не прерывает строку


добавлю
дык для сербского например траслитим (пока) по двум вариантам для Вуковицы - по кирилическому, для Гаевицы - по романическому, типа заменяя ź=>zh,
для некоторых языков
ź => z (так них подсмотрел, в сео гугль выделяет в урле для польского точно)


сори проправлю тут еще раз
модератор не катит проект не коммерческий ( Радость пока) нужно чтобы автоматически рубало, сейчас 1к авторов 100к текстов и переводов
склоняюсь к rawurlencode() там индекс для latin1 777
вот спрашиваю советов
broshurkaplus Отправлено: 01 Октября, 2018 - 19:52:16 • Тема: Вывод последних просмотренных записей • Форум: Вопросы новичков

Ответов: 4
Просмотров: 284
не понял про
Цитата:
сортирует их по id из бд


вижу так:
храним в куки массив как строку
при новом просмотре проверяем есть ли в массиве
- если есть ничего - не делаем
- если нет - удаляем последний элемент, новый в начало массива
для выбора из бд берем ключи и подставляем в in (в зависимости от порядка следования ид в бд можно сортирнуть ключи), получив данные присваиваем их по ключам начального массива -> получаем циклом вывод в порядке просмотра
broshurkaplus Отправлено: 01 Октября, 2018 - 19:37:46 • Тема: Привет старичкам форума • Форум: Прочее

Ответов: 30
Просмотров: 2207
привет всем, не заходил очень давно, но появился повод...

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

пойду, может отпишу на несколько тем...

PS кстати вот мой повод
http://forum.php.su/topic.php?forum=79&topic=5557
broshurkaplus Отправлено: 01 Октября, 2018 - 19:24:57 • Тема: хранение и обработка урлов для разных языков • Форум: Хранение данных, их вывод и обработка

Ответов: 3
Просмотров: 1691
Здравствуйте, давненько не был, но появился повод спросить:

работаю над сайтом где есть... статьи на разных языках и переводы к ним на русский (и между языками), основной упор - переводы на русский.

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

делал так:
для кирилических транслитерировал и в базу (utf-8)
для европейских романоподобных польский, чешский, немецки, французский и тд - тоже транслитерировал, но тут стали появляться отличия (по буквам/звукам, в правилах транслитерации по сравнению с родными для языка сайтами)
теперь добавились иврит, греческий, арабский, японский и тд, просмотрев "ихние" сайты - вижу что они урлят так сказать и на своей локали.



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

вопрос :
как правильно/лучше/быстрее сохранять/хранить/выводить
а также индексировать в бд, какую кодировку для сравнения использовать, размер поля...

требуется сохранить дружественность внешнего вида урла для посетителей
учесть СЕО, (получать и иностранных посетителей на сайт)

в общем кто сталкивался - подскажите как у вас, как вы видите это?
(надеюсь доступно изложил суть)
спасибо
broshurkaplus Отправлено: 12 Января, 2017 - 13:52:57 • Тема: Связать свойства • Форум: Вопросы новичков

Ответов: 1
Просмотров: 243
не до конца понял, но может быть так:
повесить событие на элемент и при его изменении
$(document).on('change',...
отправлять ajax тип данных, а на сервере проверять - если город - возвращать улицы, если улица - соответственно дома и тд.
broshurkaplus Отправлено: 12 Января, 2017 - 13:15:06 • Тема: приём, разбор и сравнение xml файлов на сайте • Форум: XML и его обработка

Ответов: 4
Просмотров: 2663
сорри за много букв, но не делал такое, поэтому сложно самому выдумать алгоритм
праздники прошли, реализовал часть функционала под требования:
пользователь -
при добавлении xml-файла пользователь сразу жёстко выбирает раздел и категорию + город (привязанный к аккаунту)
заливает файл, он на ходу проверяется на длинну (в 1000 элементов), xsd схему, сразу показываем ошибки если они есть
модератор -
может просмотреть данные и одобряет/отклоняет файл целиком, если одобряет - вычитываем данные в постоянную таблицу очереди, привязав к пользователю и xml-файлу
пользователь далее -
видит одобренные файлы, оплачивает(или бесплатно) файл ставится в очередь на исполнение, кроном мержится по частям с основной таблицей

???
далее есть вопросы
если можно направьте как лучше сделать:
при обработке нового файла - кроном по частям выбираем связанные записи и звносим в основную таблицу - файлу ставим статус "обработан"
? - что можно использовать на обычном хостинге для обработки очереди (чтоб за раз файл вычитывать и мержить с основной таблицей, тк нагрузка есть- кроме вставки выполняется жменя запросов на агрегацию данных)
? после соединения может удалять данные из таблицы очереди

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

? и как лучше обрабатывать фото

спасибо что прочли
жду ваших мнений
broshurkaplus Отправлено: 21 Декабря, 2016 - 12:36:20 • Тема: приём, разбор и сравнение xml файлов на сайте • Форум: XML и его обработка

Ответов: 4
Просмотров: 2663
ммда

на данном этапе только ручно планирую, (бесплатно например раз в неделю 1 файл на 1000 элементов, для каждой конечной категории или 3 файла) пользователь загрузит файл, он валидируется
вот тук как мне
сразу писать - нагрузка на бд в основной таблице, поэтому думаю что
первый раз - может как-то сложить в таблицу в очередь все запросы на добавление, а потом уже вставлять в основную таблицу по частям кроном например
при повторной загрузке сравнивать и в очередь только новые, удалённые или измененные
вопрос как сравнивать?
читать лучше в цикле simplexml_load_file целиком или лучше XMLReader по частям очищая память на каждой итерации?

если не сложно напишите чуть подробней алгоритм который видится Вам
спасибо
broshurkaplus Отправлено: 21 Декабря, 2016 - 11:15:45 • Тема: Отправка писем с сайта • Форум: Вопросы новичков

Ответов: 2
Просмотров: 317
быть может по настройкам локальный сервер складывает отправляемые письма в какую-либо папку на компе?
broshurkaplus Отправлено: 21 Декабря, 2016 - 10:59:24 • Тема: приём, разбор и сравнение xml файлов на сайте • Форум: XML и его обработка

Ответов: 4
Просмотров: 2663
здравствуйте
возникла задача для ресурса, пользователи просят сделать такую функцию - выгрузка товаров из xml

планируется алгоритм:
пользователь загружает файл
модератор проверяет
пользователь жмет внести - данные заносятся в бд
повторно загружает файл - тоже, толдько сравнить файлы (переведём в пхп массивы) (планируется сравнивать хеш от данных в элементе) и внести изменения (удалить, обновить, добавить)

подскажите пожалуйста варианты (правильный) алгоритм работы?
как лучше сравнивать файлы?
как это организовать автоматически с минимумом затрат?
broshurkaplus Отправлено: 22 Ноября, 2016 - 13:10:46 • Тема: по точности double • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 26
при разворачивании нового экземпляра одного старого проекта через некоторое время обнаружил что поле с типом double не так как планировалось сохраняет данные (агрегация количественных параметров).
те
имеем числа с максимум 8 знаков в целой части и 12 знаков после запятой,
поле используется как первичный ключ.
например число 1900.000000000179
сохраняет и заносит в бд тк есть, а на хостинге, где разворачивал проект
оказалось 1900.00000000018
в связи с чем пошел перекос данных.
(это ничего мы данные еще раз перегоним...)
запланировано использовать decimal (20,12), тк целое может быть max mediumint
кто сталкивался почему это могло произойти??
какой тип поля лучше использовать?
спасибо
broshurkaplus Отправлено: 16 Августа, 2016 - 12:04:51 • Тема: Подскажит как закодирована строка • Форум: JavaScript & VBScript

Ответов: 2
Просмотров: 809
здраствуйте
курлом обращаюсь по адресу и пересылаю пост данные,
в ответ получаю строку

phone_img : "адрес_сайта/pg/0sb8ZYoISy6o2R75wbC+x8CDqqgQNf3wd6jFSC3hUpF4YqJLp3JFemr3/z8TedZGD9inY.gif"

или
phone_img : "адрес_сайта/
"pg/0Rk7tpfgMNdaRqC0p4egaVaWbuPt9fWQLHafaYFuhUfVJbQLe5F4EeGd6NznYMabRSMeI.gif"

каждый раз при обращении разная строка.
при прямом обращении через браузер - отдается картинка, причем одна и таже с цифрами (номер телефона)
а на сайте - строка из цифр после аякс запроса, следовательно js преобразует както
по идее требуемая часть - последняя от / , может посимвольно как коды сисволов закодировано?

в js коде (очень длинный >15к)

накопал кусок
CODE (javascript):
скопировать код в буфер обмена
  1. var base64 = {
  2.     _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
  3.     encode: function(c) {
  4.         var a = "";
  5.         var k, h, f, j, g, e, d;
  6.         var b = 0;
  7.         while (b < c.length) {
  8.             k = c.charCodeAt(b++);
  9.             h = c.charCodeAt(b++);
  10.             f = c.charCodeAt(b++);
  11.             j = k >> 2;
  12.             g = ((k & 3) << 4) | (h >> 4);
  13.             e = ((h & 15) << 2) | (f >> 6);
  14.             d = f & 63;
  15.             if (isNaN(h)) {
  16.                 e = d = 64
  17.             } else {
  18.                 if (isNaN(f)) {
  19.                     d = 64
  20.                 }
  21.             }
  22.             a = a + this._keyStr.charAt(j) + this._keyStr.charAt(g) + this._keyStr.charAt(e) + this._keyStr.charAt(d)
  23.         }
  24.         return a
  25.     },
  26.     decode: function(c) {
  27.         var a = "";
  28.         var k, h, f;
  29.         var j, g, e, d;
  30.         var b = 0;
  31.         c = c.replace(/[^A-Za-z0-9\+\/\=]/g, "");
  32.         while (b < c.length) {
  33.             j = this._keyStr.indexOf(c.charAt(b++));
  34.             g = this._keyStr.indexOf(c.charAt(b++));
  35.             e = this._keyStr.indexOf(c.charAt(b++));
  36.             d = this._keyStr.indexOf(c.charAt(b++));
  37.             k = (j << 2) | (g >> 4);
  38.             h = ((g & 15) << 4) | (e >> 2);
  39.             f = ((e & 3) << 6) | d;
  40.             a = a + String.fromCharCode(k);
  41.             if (e != 64) {
  42.                 a = a + String.fromCharCode(h)
  43.             }
  44.             if (d != 64) {
  45.                 a = a + String.fromCharCode(f)
  46.             }
  47.         }
  48.         return a
  49.     },
  50.     recursiveDecode: function(b) {
  51.         for (var a in b) {
  52.             if (typeof(b[a]) == "object") {
  53.                 b[a] = this.recursiveDecode(b[a])
  54.             } else {
  55.                 b[a] = this.decode(b[a])
  56.             }
  57.         }
  58.         return b
  59.     }
  60. };


если сталкивались с подобным подскажите, на что похоже, чем можно раскодировать строку - получить номер телефона, куда копать
(решил все задачи, с этой бьюсь 3й день)
куда копать хотябы?
broshurkaplus Отправлено: 22 Марта, 2016 - 23:05:16 • Тема: вывести одно поле или другое, если первое =='' • Форум: Работа с СУБД

Ответов: 0
Просмотров: 649
вывести select запросом алиасом одно поле из бд или другое, если первое =='' ,
пример
CODE (htmlphp):
скопировать код в буфер обмена
  1. "SELECT `razdel_id`, IFNULL(`razdel_en`, `razdel_langru`) AS `razdel_name` FROM `razdel` ORDER BY `razdel_name`"

если razdel_en==null, то работает и отдает razdel_langru
мне надо составить если razdel_langru=='' чтоб отдавало razdel_langru ?

Решено:
CODE (htmlphp):
скопировать код в буфер обмена
  1. "SELECT `razdel_id`, (CASE WHEN `razdel_$lang`!='' THEN `razdel_$lang` ELSE `razdel_langru` END) AS `razdel_name` FROM `razdel` ORDER BY `razdel_name`"


можно закрыть.
broshurkaplus Отправлено: 23 Января, 2016 - 17:56:55 • Тема: перенаправление скриптов на index • Форум: Объектно-ориентированное программирование

Ответов: 0
Просмотров: 620
В одном проекте на локалке на конце домена (главной страницы) появился завершающий /
те
domen.xx/
остальные страницы (domen.xx/page и тд) нормально

локальный openserver
все скрипты перенаправляем на index .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

подскажите пожалуйста как избавиться?
broshurkaplus Отправлено: 27 Декабря, 2015 - 18:36:31 • Тема: пропустить только цифры или пустую строку • Форум: Регулярные выражения

Ответов: 5
Просмотров: 751
перечитал, спасибо
возможно ли полуить true когда приходит пустая строка?
broshurkaplus Отправлено: 27 Декабря, 2015 - 18:15:11 • Тема: пропустить только цифры или пустую строку • Форум: Регулярные выражения

Ответов: 5
Просмотров: 751
вроде ставил квант. * - и обратился потому что не дает то чего мне надо...

PHP:
скопировать код в буфер обмена
  1. //отправляем:
  2. //'55'
  3. //'55aa'
  4. //''
  5.  
  6. [PHP]$id=filter_input(INPUT_POST, 'rednum', FILTER_VALIDATE_REGEXP,
  7.                 array('options'=>array('regexp'=>'/^[0-9]*$/')));
  8. if(!$id){
  9.             var_dump($id);
  10.             var_dump(false);
  11.         }
  12.         else{
  13.             var_dump($id);
  14.             var_dump(true);
  15.         }
  16. //получаем:
  17. //string(2) "55" bool(true)
  18. //bool(false) bool(false)
  19. //string(0) "" bool(false)    -  мне нужно чтобы тут (если пост rednum - пустая строка давало true
[/PHP]

?

Страниц (24): [1] 2 3 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB