Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Konwersja na znaki specjalne
Forum PHP.pl > Forum > Przedszkole
masterinfo
Witam.

Mam skrypcik, który wczytuje dane z pliku tekstowego i umieszcza je w bazie danych. W pliku tekstowym czasami trafiają się znaki specjalne w kodzie html (czyli np. ığ), a ja chciałbym je przekształcić na pojedynczy znaczek (taki jak w html). Nie mogę tego zrobić poprzez str_replace bo nie wiem jakie jeszcze inne znaki będą tam występowały.

Proszę o pomoc!!!
wojtek4410
użyj htmlspecialchars()
masterinfo
Taa, ale htmlspecialchars() zamienia znak spec. na kod html, a mnie potrzeba tego w drugą stronę...
strife
Jak chcesz się pozbyć tych znaków to może strip_tags" title="Zobacz w manualu PHP" target="_manual ?

Pozdrawiam
Kuziu
Cytat(scarface @ 2005-02-27 21:35:40)
Jak chcesz się pozbyć tych znaków to może strip_tags" title="Zobacz w manualu PHP" target="_manual ?

Pozdrawiam

Ta funkcja wywala Tagi HTML a nie zamienia je na znaki normalne.
strife
Cytat(Kuziu @ 2005-02-27 19:38:38)
Cytat(scarface @ 2005-02-27 21:35:40)
Jak chcesz się pozbyć tych znaków to może strip_tags" title="Zobacz w manualu PHP" target="_manual ?

Pozdrawiam

Ta funkcja wywala Tagi HTML a nie zamienia je na znaki normalne.

Tak więc to ja sie trochę pomyliłem, jeśli mógłbyś w takim razie mi powiedzieć co znaczy zmienić na znaki normalne, jak to mniej więcej ma wyglądać? bo trochę nie rozumiem.

EDIT

@Kuziu - dobrze, teraz rozumiem, dzięki za odpowiedź. Zaraz spróbuje to jakoś zrobić..(o ile mi się uda) smile.gif
Kuziu
Masz np. znak
Kod
<
i zamienić go znów na
Kod
<
ale nie poprzez strreplace bo tych znaków chyba sporo jest.
strife
Znalazłem coś takiego przykład pochodzi z manuala - htmlspecialchars" title="Zobacz w manualu PHP" target="_manual
  1. // o reverse the action of htmlspecialchars(), use this code:
  2.  
  3. <?php
  4.    unhtmlspecialchars( $string )
  5.    {
  6.        $string = str_replace ( '&amp;', '&', $string );
  7.        $string = str_replace ( ''', '&#092;'', $string );
  8.        $string = str_replace ( '&quot;', '\"', $string );
  9.        $string = str_replace ( '&lt;', '<', $string );
  10.        $string = str_replace ( '&gt;', '>', $string );
  11.        
  12.        return $string;
  13.    }
  14.  
  15. ?>

@masterinfo - powiedz czy chodzi mnie więcej o coś takiego?

@Kuziu - właśnie nie wiem do końca czy jest tych znaków aż tyle, zawsze można zmienić te najpotrzebniejsze. Ale skoro w manualu jest coś takiego to chyba nie ma więcej. Chociaż NIE jestem tego pewien, powiedział bym nawet że są też inne... nie wiem. Jeszcze poszukam czegoś...

Pozdrawiam!

EDIT

No tak przecież znaczek copyright to to samo, o jak głupi... sadsmiley02.gif Ja narazie wpadłem na jedno rozwiązanie wpisanie tego wszystkiego... innego sposoby nie znam... sad.gif
Kuziu
Znaki specjalne HTML
masterinfo
@scarface - też widziałem tę funkcję z manuala, ale nie do końca o to mi chodzi. Bo nie wiem jakie te znaki jeszcze w przyszłości wystąpią i musiałbym rozszerzyć ją o wszystkie dostępne (np. korzystając z tablicy podanej w linku od Kuzia). Jednak szukam jakiejś funkcji zdefiniowanej w php. No ale jeżeli nie ma czegoś takiego to chyba trzeba będzie skorzystać z rozwiązania "na piechotę"

No i jest jeszcze jeden problem: pod linkiem nie ma wartości, które mnie interesują, czyli #305 i #287, więc nawet przepisanie wartości przez str_replace nie pomoże sad.gif
crash
No właśnie, przecież to jest typowe działanie html_entity_decode" title="Zobacz w manualu PHP" target="_manual więc po co pisać od nowa funkcję?
masterinfo
No i właśnie o coś takiego mi chodziło, tylko nikt nie potrafił mi tego powiedzieć, a moja znajomość z php zaczęła się kilka dni temu, więc sam też nie znalazłem...
W każdym razie dzięki - pomogliście smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.