• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak pozbyć się wyrażeń regularnych zwróconych przez funckję "json_encode()"?

VPS Starter Arubacloud
0 głosów
394 wizyt
pytanie zadane 12 sierpnia 2018 w JavaScript przez Śwież4k Bywalec (2,570 p.)
edycja 12 sierpnia 2018 przez Śwież4k

Siema, mam pytanie, bo funkcja json_encode() w php zwraca mi np. coś takiego

\r\n\t\t Smart Gym Wodospady<\/h3>\r\n\t\t
\r\n\t\t Miesi?czny karnet, link: LINK\r\n\t\t<\/p>

Kontakt: | Cennik: ??? | Strona Internetowa: siema.html | Adres: kulturka <\/p>\r\n\t\t"

Jak dobrze rozumiem są to wyrażenia regularne te litery po backslashu. Za pomocą tej funkcji zwracam dane do AJAXa, a potem jes wyświetlam na stronie za pomocą funkcji 

$('div').html(response);

Czy istnieje jakaś funkcja lub jakiś sposób, który pomoże pozbyć mi się tych wrażeń?

2 odpowiedzi

0 głosów
odpowiedź 12 sierpnia 2018 przez StOcK Mądrala (6,100 p.)
wybrane 12 sierpnia 2018 przez Śwież4k
 
Najlepsza

W php użyj:

stripslashes()

ale wtedy JS zwróci Ci, że JSON jest niepoprawny.

Najlepiej to w JS użyj JSON.parse

komentarz 12 sierpnia 2018 przez Comandeer Guru (599,730 p.)
https://3v4l.org/WcmQ7 – przecież to nic nie daje, bo do klienta trzeba posłać jako JSON. A nie da się posłać znaku nowej linii jako części JSON-a.
komentarz 13 sierpnia 2018 przez StOcK Mądrala (6,100 p.)

Może w ten sposób wyjaśnię:
Przesyła żądanie z AJAXa do serwera, na serwerze np:
 

$result='
<h1>title</h1>


<small>subtitle</small>


<b>co               s</b>cos

';
echo json_encode($result);

Teraz odbiera żądanie z serwera 

console.log(data);

i... a teraz

console.log(JSON.parse(data));

Teraz rozumiesz?

komentarz 13 sierpnia 2018 przez StOcK Mądrala (6,100 p.)

Albo

$web_site = array(
    'Nam' => 'OSTraining',
    'URL' => 'http://ostraining.com',
    'Purpose' => 'Education'
);
echo json_encode($web_site);

Łatwiej chyba pracować na obiektach niż na ciągach znaków wink


 

komentarz 13 sierpnia 2018 przez Comandeer Guru (599,730 p.)
Ale co to ma wspólnego z problemem…? Nie musisz mi tłumaczyć, jak działa format JSON, bo znam go bardzo dobrze. Nijak się też to ma do mojego pytania o niepotrzebne przepuszczanie tych danych przez json_decode na serwerze.

Poza tym wypada założyć, że białe znaki mają być wycięte, bo i tak to nie wpływa na renderowanie ostatecznego kodu HTML.
komentarz 13 sierpnia 2018 przez Comandeer Guru (599,730 p.)
Inna rzecz, że jQuery czy każda inna biblioteka z obsługą Ajaksa ma wsparcie dla JSON out of box, więc jeśli musimy sami parsować po stronie przeglądarki, to wskazuje to najprawdopodobniej na złe użycie samej biblioteki.
+1 głos
odpowiedź 12 sierpnia 2018 przez Tomek Sochacki Ekspert (227,510 p.)
edycja 13 sierpnia 2018 przez Tomek Sochacki

To nie wyrażenia regularne ale po prostu znaki ASCII zapisane w formie skróconej. Możesz je natomiast łatwo usunąć wyrażeniem regularnym:

/^\s+|\s+$/

i przeleć nim cały ciąg (nie pamętam już teraz fukcji w PHP do obsługi regexp ale te znajdziesz sobie w manualu) albo funkcja trim.

Podobne pytania

0 głosów
2 odpowiedzi 124 wizyt
0 głosów
4 odpowiedzi 626 wizyt

92,453 zapytań

141,262 odpowiedzi

319,086 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...