Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Explode i twarde spacje
Forum PHP.pl > Forum > PHP
Ziem
Witam!
Mam następujący problem:
Stronę pobieram Curlem, a następnie obrabiam ją DOMem i przy obróbce pojawia się problem.
W kodzie html tej strony mam coś takiego:
  1. imie nazwisko
imie & # 160 ; nazwisko <- specjalnie dodałem spację, żeby było widać

W jaki sposób zastosować explode w tym przypadku?

Pomyślałem, wejdę w WORDa zrobię twardą spację i gitara. Wszystko byłoby ok, gdyby nie jeden mały szczegół.
Po explode tablicy wygląda następująco:
Cytat
Array ( [0] => imie� [1] => nazwisko)


W jaki sposób pozbyć się tego znaku zapytania <?>, bo strasznie utrudnia mi on pracę....

Pozdrawiam, Ziem!
fander
nie działa u ciebie

Kod
explode(" ",$string);


albo

Kod
explode(chr(160),$string);


jak nie to zamień znaki przy pomocy funkcji str_replace
Wicepsik
  1. explode('& # 160 ;', $string);
Ziem
Cytat(fander @ 29.06.2010, 14:18:55 ) *
nie działa u ciebie

Kod
explode(" ",$string);


albo

Kod
explode(chr(160),$string);


jak nie to zamień znaki przy pomocy funkcji str_replace

1. Nie działa, dostaję te dziwne znaki zapytania, tak jak w 1 poście.
2. To samo.
3. Też ?.

Cytat(Wicepsik @ 29.06.2010, 14:22:50 ) *
  1. explode('& # 160 ;', $string);

Tutaj nawet nie dzieli....

EDIT: Ewentualnie czy za pomocą DOM, da się te twarde spacje zamienić na zwykłe??
fander
A jakie masz kodowanie w skrypcie, na stronie z której to pobierasz może tutaj tkwi szkopuł.

Najlepiej gdybyś znalazł heksadecymalny numer tego znaku
Ziem
Kodowanie strony: ISO-8859-1
W HTMLu ten znak wygląda tak (na tej stronie): & # 160 ;

W Notepad2 mam ustawiony UTF-8, strona to czysty php bez żadnych headerów, htmlu czy coś.
fander
No to nie wiem u mnie po takiej operacji nie ma żadnych pytajników

Kod
$string = "imie nazwisko";
echo '<pre>';
print_r(explode('& # 160;', $string)); <= dodane spacje
echo '</pre>';


Wynik

Kod
Array
(
    [0] => imie
    [1] => nazwisko
)
Ziem
Coś pokombinuję i dam znać smile.gif.

Jak ustawię kodowanie na ANSI to dostaję "Â"...

EDIT1:
Coś jest nie tak...
1. Gdy dam explode('& # 160;', $string); to otrzymuję:
Cytat
Array
(
[0] => imie nazwisko
)


2. Gdy dam explode('wklejona twarda spacja z worda', $string); to otrzymuję:
Cytat
Array
(
[0] => imieÂ
[1] => nazwisko
)


3. Normalnie wyświetla mi się to jako:
Cytat
imie nazwisko


Edit2:
Zmieniłem kodowanie znowu na UTF-8 i działa! Możliwe, że coś z tym kodowaniem nie było ok.

Dzięki wielkie za pomoc 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.