2012-05-15 18 views
6

Skrobię niektóre witryny i mam tekst ASCII, który chcę przekonwertować na zwykły tekst do przechowywania w DB. Na przykład chcęKonwertuj ASCII na tekst jawny w PHP

I have got to tell anyone who will listen that this is 
one of THE best adventure movies I've ever seen. 
It's almost impossible to convey how pumped I am 
now that I've seen it. 

konwertowane do

I have got to tell anyone who will listen that this is 
one of THE best adventure movies I've ever seen. It's 
almost impossible to convey how pumped I am now that 
I've seen it. 

Mam google palce krwawe, żadnej pomocy?

+0

Dzięki za pomoc, działało świetnie! –

+0

możliwy duplikat [Dekodowanie numerycznych encji html przez PHP] (http://stackoverflow.com/questions/9587751/decoding-numeric-html-entities-via-php) i zobacz także powiązane pytania z prawej strony. – hakre

Odpowiedz

18

Można użyć html_entity_decode:

echo html_entity_decode('...', ENT_QUOTES, 'UTF-8'); 

Kilka uwag:

  • Należy pamiętać, że wygląda rzeczywiście chcesz przekonwertować z HTML zakodowany ciąg (z podmiotami jak ) ASCII AKA tekst jawny.

  • Ten przykład przekształca się w UTF-8, który jest kodowaniem znaków zgodnym z ASCII dla wszystkich znaków ASCII (tj. Z kodami znaków poniżej 128). Jeśli naprawdę potrzebujesz zwykłego ASCII (tracąc w ten sposób wszystkie znaki akcentowane i znaki z obcych języków), powinieneś osobno usunąć wszystkie obrażające się postacie.

  • Ostatni argument ("UTF-8") jest niezbędny do zachowania zgodności z różnymi wersjami PHP, ponieważ wartość domyślna zmieniła się od wersji 5.4.0.

Aktualizacja: Example with your text in ideone.

Aktualizacja2: Zmieniono ENT_COMPAT na ENT_QUOTES według sugestii @ Daana.

+0

Dzięki za wejście. Rzeczywiście próbowałem używać html_entity_decode, ale moje dane wyjściowe nadal mają odpowiednik ASCII znaku cudzysłowu, np. ' Czy jest to zakodowane w HTML? Tak naprawdę chcę przejść od kodowania kodowanego HTML do ASCII zwykłego tekstu, jak robię niektóre analizy sentymentu na wyniki. –

+0

Podany przykład działa dla mnie z twoimi danymi wejściowymi; czy jesteś pewien, że przekazujesz poprawne parametry do 'html_entity_decode'? – Daan

+0

@Daan yep, działa w przeglądarce, ale kiedy uruchomię ten sam kod w CLI problem będzie się powtarzał. –