Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Explode i twarde spacje
Ziem
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


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!
Go to the top of the page
+Quote Post
fander
post
Post #2





Grupa: Zarejestrowani
Postów: 231
Pomógł: 22
Dołączył: 6.10.2008

Ostrzeżenie: (0%)
-----


nie działa u ciebie

Kod
explode(" ",$string);


albo

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


jak nie to zamień znaki przy pomocy funkcji str_replace

Ten post edytował fander 29.06.2010, 13:20:01
Go to the top of the page
+Quote Post
Wicepsik
post
Post #3





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


  1. explode('& # 160 ;', $string);


Ten post edytował Wicepsik 29.06.2010, 13:23:04
Go to the top of the page
+Quote Post
Ziem
post
Post #4





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


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??

Ten post edytował Ziem 29.06.2010, 13:28:27
Go to the top of the page
+Quote Post
fander
post
Post #5





Grupa: Zarejestrowani
Postów: 231
Pomógł: 22
Dołączył: 6.10.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował fander 29.06.2010, 13:31:44
Go to the top of the page
+Quote Post
Ziem
post
Post #6





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


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ś.

Ten post edytował Ziem 29.06.2010, 13:47:20
Go to the top of the page
+Quote Post
fander
post
Post #7





Grupa: Zarejestrowani
Postów: 231
Pomógł: 22
Dołączył: 6.10.2008

Ostrzeżenie: (0%)
-----


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
)


Ten post edytował fander 29.06.2010, 14:02:10
Go to the top of the page
+Quote Post
Ziem
post
Post #8





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


Coś pokombinuję i dam znać (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/smile.gif) !

Ten post edytował Ziem 29.06.2010, 15:18:13
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 23:34