Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zamienić twarde spacje?
Forum PHP.pl > Forum > Przedszkole
sada
[php][/php] Witam!

Straciłem 2 dni, przeczytałem chyba wszystko o twardych spacjach i nic..

1.Za pomocą funkcji file_get_contents wyciąłem część źródła strony i próbuję go obrabiać jako string.
2.W żródle występowały dwa rodzaje spacji  (twarda) i po prostu odstęp (miękka).
3. Podczas wyświetlania wyciętej części nadal występują dwa rodzaje spacji (w Wordzie jedna z nich oznaczona jest kropką a druga kółeczkiem) lecz nie ma już ( ).
4. Ta oznaczona kropką daje sie wykasować lub zamienić funkcją str_replace.
5. Tej , która w żródle była spacją twardą   a teraz jest (kólkiem) nie mogę ruszyć.
Próbowałem str_replace i ereg_replace , wydaje mi się , że teraz nie jest to już   , może jakiś znak UNICODE?

POmocy
!*!
Podaj jakiś kod, jak to chcesz zamienić.
sada
R w

z tej linijki chciałbym usunąć znaki stojące przed R i po w.
Zauważyłem , że po wklejeniu tekstu do formularza , wysłania i odczytaniu wysłanego tekstu wszystkie spacje są jednego typu - cuda.






Niestety spacje zniknęły więc mogę tylko tłumaczyć opisowo

Próbowałem wszystkich kombinacji
  1. $text=str_replace(" ","",$text);
  2. $text=str_replace(' ',"",$text);
  3. $text=str_replace(" ",'',$text);
  4. $text=str_replace(' ','',$text);
  5.  
sada
  1. $text=str_replace(" ","",$text);
  2. $text=str_replace(" ",'',$text);
  3. $text=str_replace(' ',"",$text);
  4. $text=str_replace(' ','',$text);
  5.  
!*!
  1.  
  2. $text = 'zxc       zxc';
  3.  
  4. $text=str_replace(' '," ",$text);
  5.  
  6. echo $text;
  7.  


U mnie to działa. poza tym, między "" nie dałeś spacji
elmozaur
a trim() questionmark.gif?
sada
!*!
-Bez spacji bo chciałem skasować.

-Wiem że działa gdy   widać w źródle strony .
Po potraktowaniu funkcją file_get_contents nie wygląda to jednak jak  ( w źródle nie występuje już ciąg znaków  ) i właśnie nie wiem jak ją nazwać by użyć np. str_replace.


-trim działa na brzegi stringa więc nawet nie próbuję
!*!
To określ się w końcu czego oczekujesz.

  1. $text = 'zxc       zxc';
  2.  
  3. $text=str_replace(' ',"",$text);
  4.  
  5. echo $text;


W powyższym przykładzie twarda spacja jest kasowana. Nie podałeś żadnego kodu, jakie pliki wczytujesz, oraz czy używasz jakiś innych funkcji.
zegarek84
Cytat(sada @ 1.10.2009, 16:32:23 ) *
!*!
-Bez spacji bo chciałem skasować.

-Wiem że działa gdy   widać w źródle strony .
Po potraktowaniu funkcją file_get_contents nie wygląda to jednak jak  ( w źródle nie występuje już ciąg znaków  ) i właśnie nie wiem jak ją nazwać by użyć np. str_replace.


-trim działa na brzegi stringa więc nawet nie próbuję

jeśli kodowanie jest w utf-8 i nie widać dłuższego symbolu w znacznikach html to otwórz że sobie stronę w operze (nie mozilli bo poprawia źródła i nie wiem czy twarda spacja się zostaje ;p) i skopiuj ten znak - lub w ie i pokaż źródła (otworzy raczej w notatniku chyba, że inaczej skojarzyłeś programy ;p) - po skopiowaniu do zmiennej ten znak wstaw między znak pojedynczego apostrofu czyli '.... a jeśli to nie zadziała to poszukam Ci symbol znaku unikode (choć to nie problem i też powinieneś tą drogą iść ;p) - ale tylko pokaż jak wstawiasz i opisz jak kopiujesz bo większość nietypowych symboli da się tak obrobić ;p - pliki najlepiej miej kodowane w utf-- te ze skryptami php winksmiley.jpg
crackcomm
Kod
$text = str_replace(' ', '', $text);
$text = str_replace(" ", '', $text);

Wklej.org wrzuć jakiś plik.
sada
  1. $data=file_get_contents($url);
  2. $data=strstr($data,$znak0);
  3. $data=substr($data,strlen($znak0));
  4. $data=strstr($data,$znak2);
  5. $data=substr($data,strlen($znak2));
  6. $rowraz = strpos ($data,$znak1);
  7. $text = substr($data,0,$rowraz);
  8. echo $text;
  9.  


Jeszcze raz :

1.Powyższy kod pobiera kod źródłowy ze strony o URL-u $url
2.W kodzie tej strony występują spacje zwykłe i twarde ( )
3.Po wykonaniu kodu tekst wygląda tak samo lecz w źródle nie ma już   w formie jawnej, nie są to też zwykłe spacje.
4. Po dodaniu do kodu przed ostatnim wierszem :
  1. str_replace(" ','',$text);// próbowałem w różnych kombinacjach apostrofu
  2.  


nie da się wykasować spacji , które w stronie $url były spacjami twardymi

5. Tą metodą kasowanie spacji zwykłych jest bez problemu

Pytanie :

Jak je wykasować, jak je nazwać w funkcji str_replace bo   nie działa?
Czy nadal są to spacje  , bo nie ma już w źródle strony oznaczeń  ?
W po skopiowaniu do Worda , włączając znaki specjalne przedstawione są jako kółka , a spacje zwykłe jako kropki.
Po naciśnięciu w Wordzie SPACE +Shift+Ctrl uzyskujemy kólko .
zegarek84
Cytat(sada @ 1.10.2009, 19:06:38 ) *
Jeszcze raz :
.....
Pytanie :...

jeszcze raz pytanie - czytałeś w ogóle mojego posta?? - dobre dobre - rozbrajasz mnie swoją bezradnością sciana.gif
edit - e nie - pewnie czekasz na gotowy kod winksmiley.jpg - choć kod już masz gotowy i wystarczy się dostosować do wskazówek thumbsupsmileyanim.gif
sada
Nie wystarczy bo twoim sposobem nie wychodzi też.

Zastosowałem się dokładnie do twoich wskazówek ale:

Po wklejeniu między apostrofy zwykłej spacji kod działa po wklejeniu znaku podejrzanego , że nie jest twardą spacją niestety nie.

Twój post przeczytałem rzeczywiście dopiero po napisaniu odpowiedzi na poprzedni tak czasami bywa w życiu, przykro mi że poczułeś się opuszczony i samotny, nie musisz się rozczulać moją bezradnością.
zegarek84
Cytat(sada @ 1.10.2009, 20:04:54 ) *
Twój post przeczytałem rzeczywiście dopiero po napisaniu odpowiedzi na poprzedni tak czasami bywa w życiu, przykro mi że poczułeś się opuszczony i samotny, nie musisz się rozczulać moją bezradnością.

dobre dobre ;p - ale dla przykładu może podaj źródło strony - nie kodu - zwykły link ;p - może zdążę Ci pomóc zanim się upiję bo dzisiaj małe święto a jak gdzieś się udzielam to choć czasem lekko "docinam" to nie o to chodzi - ale wystarczy mi że jedno z tego co napisałem się sprawdzi - bo pisałem jescze coś jeśli jednak skopiowanie znaku nie pomoże - a kopiować go można na wiele sposobów ;p - i większość znaków unikode zajmuje więcej niż jeden bajt ;p - mało tego - twarda spacja jak dobrze pamiętam mieści się jeszcze chyba w tablicy asci ;p

daj linka ;p
sada
Na tej stronie przed pierwszą literą (Akordem ) C i za pierwszą literą (akordem) a jest znak o który chodzi.
Wklejając ten znak do strony ze znakami unicode wychodzi, że to zwykła spacja &#32.
Ale niestety to nieprawda.

http://wyszalnia.pl/polskie_piosenki/bajm/...S-NA-SWIAT/1508
zegarek84
o rany - nie chce mi się bawić i to forum nie umożliwia udostępniania skryptu tak jakbym chciał ;p - więc załączam załącznik - przez tydzień będzie

i teraz zaprzecz że to nie działa - napisz, że spacja równa się spacji winksmiley.jpg - co innego się wyświetla ;p - napisz, żem tak nie pisał - a ledwo w klawiaturę teraz klikam ;p

gotowe rozwiązanie - da się inaczej z symbolem unikode ale chyba za dużo wypiłem ^^ - a pisałem, jak kopiować, i, że zadziała ;p
http://www.sendspace.pl/file/676aa0144dfa1626eb05593
sada
Jesteś wielki , wyizolowałeś tą spację -POMÓGŁ,dzięki
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.