За последние 24 часа нас посетили 51308 программистов и 1758 роботов. Сейчас ищут 1579 программистов ...

Корректная выборка данных из MySQL и декодирование в JSON

Тема в разделе "PHP для новичков", создана пользователем kolhoz, 22 сен 2017.

  1. kolhoz

    kolhoz Активный пользователь

    С нами с:
    7 ноя 2016
    Сообщения:
    31
    Симпатии:
    0
    Есть файлик

    Код (Text):
    1. <?php
    2. $host = 'localhost';
    3. $db   = 'test';
    4. $user = 'test';
    5. $pass = 'test';
    6. $charset = 'utf8';
    7. $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
    8. $opt = [
    9. PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    10. PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    11. PDO::ATTR_EMULATE_PREPARES   => false,
    12. ];
    13. $pdo = new PDO($dsn, $user, $pass, $opt);
    14. $response = array();
    15. $result = $pdo->query("SELECT * FROM c068t_k2_items where catid = 6");
    16. $response["items"] = array();
    17. while ($row = $result->fetch()) {
    18.     //print_r($response);
    19. $product = array();
    20.     $product["id"] = $row["id"];
    21.     $product["title"] = $row["title"];
    22.     $product["catid"] = $row["catid"];
    23.     $product["created"] = $row["created"];
    24.     $product["introtext"] = $row["introtext"];
    25.     array_push($response["items"], $product);
    26. }
    27. $response["success"] = 1;
    28. echo json_encode($response);
    29. ?>
    который выбирает из БД записи с выдает это в JSON, все работает но есть небольшие проблемы:

    1. Колонка introtext содержит текст такой примерно

    Код (Text):
    1. <p>текст.</p>
    2. <p>текст.</p>
    3. <p>текст.</p>
    4. <p style="text-align: center;"><img src="images/izvestnye-ludi/img1.jpg" alt="Image 1" /></p>
    5. <p style="text-align: center;">текст.</p>
    А в JSON я получаю текст где <p> заменен на \r\n Как заменять \r\n на <p>

    2. Колонка introtext содержит строки

    <p style="text-align: center;"><img src="images/img/img1.jpg" alt="Image 1" /></p>

    но вместо такого же текста в JSON я получаю просто текст Image 1

    В итоге у меня вопрос, можно в JSON получить такой же текст как в колонке?
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    как определяете что у вас в JSON ?
     
  3. kolhoz

    kolhoz Активный пользователь

    С нами с:
    7 ноя 2016
    Сообщения:
    31
    Симпатии:
    0
    Вставляю весь полученный текст например сюда http://jsoneditoronline.org/ да и так видно
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    текст берете просто из браузера?
    попробуйте посмотреть и взять из режима иcходника - ctrl+u
     
  5. kolhoz

    kolhoz Активный пользователь

    С нами с:
    7 ноя 2016
    Сообщения:
    31
    Симпатии:
    0
    Результат получше есть тег <p> и ссылка на картинку есть, но все равно в некоторых местах все равно или слеш обраный \ или \r\n встечается.. Дело в том что я получемые данные потом буду использовать в андроид приложении, а там я так понимаю он будет брать то что в браузере я вижу. т.е. без ссылки на картинку и без <p>
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    1. Я думаю в БД так же есть /n/r ... то что вы их не видите - не говорит что их нет
    2. Если браузер адекватный - отобразит все как нужно ...

    Интересно, а как вы визуально хотели увидеть тег <p> - параграфа?
    А то что картинку не видите - так у вас путь относительный ... а он чего относителен того и касателен.... если будете передавать полный путь с указанием сервера - вам браузер все отобразит

    Вывод - JSON вообще не при чем
     
  7. kolhoz

    kolhoz Активный пользователь

    С нами с:
    7 ноя 2016
    Сообщения:
    31
    Симпатии:
    0
    Я понимаю что json не причем. Вопрос был в другом, как при выборке сделать заменять \r\n например на <p> или делать другие замены в строках
    --- Добавлено ---
    Интересно, а как вы визуально хотели увидеть тег <p> - параграфа? Как увидел... в БД она есть, получил json и посмотрел исходный код страницы php где получаю json и там увидел
     
  8. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    не было такого вопроса.
    а вы сначала попробуйте в приложении...
     
  9. kolhoz

    kolhoz Активный пользователь

    С нами с:
    7 ноя 2016
    Сообщения:
    31
    Симпатии:
    0
    Как не было вопроса)) первый мой вопрос был как заменять \r\n на <p>
     
  10. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    - еще раз - ничего там не заменено, следовательно и обратно не нужно.

    Если уж очень хочется поизвращаться - то nl2br() или str_replace() и заменять тогда уж на <br/> ибо это и есть перевод строки
     
  11. kolhoz

    kolhoz Активный пользователь

    С нами с:
    7 ноя 2016
    Сообщения:
    31
    Симпатии:
    0
    если не заменено, то мне например непонятно почему </p> отображается в json, а <p> НЕТ
     
  12. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    сами себе противоречите
    ....поэтому я думаю, что все там есть ....