Как передать извне значения нескольких объявлений?

Moved Поддержка
  • @fox said in Как передать извне значения нескольких объявлений?:

    За оскорбление других участников форума последует бан. Относитесь более сдержано к помощи, помогают здесь форумчане в своё свободное время, бесплатно и по личной инициативе.

    Так я же не о участниках форума! А о тех, кто создавал csv, порадив такую путаницу в виде сообщений "что за кразякабры выводятся, как открыть csv"! Вот таких анти-решения я и не хотел видеть в виде копипаста, но видимо выше участники меня не слышат, при этом пишут "решения", на которые если не ответить - то как будто я их принял, хотя вообще никуда не годные.

    Мне нужны данные от гения. Подобны вашим. :) И по моему только это достойно почтительного отношения.

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

    Да, мне тоже это так видится, но вот вопрос в редактировании этого файла? Менять данные, дополнять например? То есть csv, только по нормальному?

  • @az-lubov8 said in Как передать извне значения нескольких объявлений?:

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

    Да, мне тоже это так видится, но вот вопрос в редактировании этого файла? Менять данные, дополнять например? То есть csv, только по нормальному?

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

    Данные для заполнения базы при старте можно как раз брать из файлов.

  • @fox said in Как передать извне значения нескольких объявлений?:

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

    Нет, необходимоти такой нет. Нужна наглядность. И простота.

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

  • @az-lubov8 на сайте открывается нормально, потому-что сайт грузится в кодировке utf. В системе же файлы по умолчанию создаются с кодировкой ANSI. Буквально недавно сталкивался с подобной проблемой, когда необходимо было спарсить данные и занести их в csv и решил эту проблему путем предварительного создания нужного файла и изменения его кодировки на utf. Это простое, банальное решение, но задача была одноразовой, так что, как-то особо заморачиваться не было мотивации. Но, если бы надо было бы сделать что-то более конвеерное, то я бы покопался в JS-функциях по работе с кодировками

  • @yumilen said in Как передать извне значения нескольких объявлений?:

    на сайте открывается нормально, потому-что сайт грузится в кодировке utf. В системе же файлы по умолчанию создаются с кодировкой ANSI.

    Давайте по простому. Ответьте самому себе: когда вы открываете сайт, вы при этом сообщаете браузеру в какой кодировке открывать, мол этот сайт открывать в utf-8 , а вон тот в windows-1251?

    Я не ищу извращений.

  • @az-lubov8 вы не сообщаете. Сервер сообщает...

  • @yumilen вот и я ищу такого решения, от головы! Возможно от мудрой и хитрой головы!))))

  • @az-lubov8 said in Как передать извне значения нескольких объявлений?:

    Менять данные, дополнять например?

    *Дополнять из автоматизатора.

  • Самый простой вариант - csv. В екселе Сохранить как - csv-ms-dos . В блокноте правите кодировку на utf-8. В скрипте - парсить строку. Единственное - избегайте многострочных текстов.
    Я уже давно пользуюсь такой системой данных.

  • @drprime Пробовал делать автоопределение кодировки? Разделителя? Экранизации?

  • @yumilen said in Как передать извне значения нескольких объявлений?:

    разве здесь не ту же проблему обсуждают?
    https://community.bablosoft.com/topic/535/как-изменить-кодировку-при-записи-файла

    Нет, там обсуждение как подстроиться под извращение и нерасторопность создателей и продвигателей csv.

  • Может какой xml есть, который exel работает как с таблицей?

  • Вообще как вижу нормальную работу.

    1. Подключение файла csv.
    2. Получение массива значений каждой строчки (исключая первую) для цикла, при этом у каждого значения: ключ = название из заголовка.
    array(
       array('Заголовок' => 'Куплю', 'Текст' => 'Куплю что нибудь', 'Минимальная цена' => 100),
       array('Заголовок' => 'Продам', 'Текст' => 'Продам что нибудь', 'Минимальная цена' => 100),
    ...
    )
    
    1. Возможность заменить значение.

    В php есть возможность такое проделать.

    Я не против если нужно при выборе csv ещё выбирать кодировку, разделитель и экранизацию.

  • @az-lubov8 said in Как передать извне значения нескольких объявлений?:

    @drprime Пробовал делать автоопределение кодировки? Разделителя? Экранизации?

    При сохранении все екранизируется. Потом в Парсить строку нормально распарсится. Может стоит попробовать?

  • @drprime Мне правильное решение нужно для программы. Реализовать я могу и на php, при том у меня это уже реализовано. Но нужно для программы.

    Успех зависит от изначально правильного решения.