Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> usuwanie powtarzajacego sie ciagu znakow
pfan
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 30.03.2005

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


mamy sobie jakis text w ktorym powtarzaja sie niepotrzebnie np. adresy www, wyrazy, czy idzie za pomoca php je usunac ?
Go to the top of the page
+Quote Post
Radarek
post
Post #2





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 23.05.2005

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


no jasne: poszukaj cos o wyrazeniach regularnych [regex expression - w skrocie: regexp]
Go to the top of the page
+Quote Post
matid
post
Post #3





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

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


Cytat(Radarek @ 2005-05-30 17:21:55)
no jasne: poszukaj cos o wyrazeniach regularnych [regex expression - w skrocie: regexp]

Rozwinięciem skrótu regexp jest Regular expression a nie Regex Expression.

Tutaj więcej na ten temat:
http://en.wikipedia.org/wiki/Regexp
Go to the top of the page
+Quote Post
Radarek
post
Post #4





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 23.05.2005

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


Cytat(matid @ 2005-05-30 15:32:24)
Cytat(Radarek @ 2005-05-30 17:21:55)
no jasne: poszukaj cos o wyrazeniach regularnych [regex expression - w skrocie: regexp]

Rozwinięciem skrótu regexp jest Regular expression a nie Regex Expression.

Tutaj więcej na ten temat:
http://en.wikipedia.org/wiki/Regexp

Tak masz racje. Pospieszylem sie za bardzo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
pfan
post
Post #5





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 30.03.2005

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


i tak nie mam pojecia jak to zrobic (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)
Go to the top of the page
+Quote Post
Radarek
post
Post #6





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 23.05.2005

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


Cytat(pfan @ 2005-05-30 18:18:52)
i tak nie mam pojecia jak to zrobic (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)

No to powiedz konkretnie co chcesz zrobic to ktos na pewno ci pomoze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
Go to the top of the page
+Quote Post
strife
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat(pfan @ 2005-05-30 20:18:52)
i tak nie mam pojecia jak to zrobic (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)

Witam,

Tu masz mnóstwo przykładów i opisów co do wyrażeń regularnych, mimo tego na kursie podajrze leon'a jest coś o wyrażeniach regularnych, możesz też ugryść to przez google.
http://pl.php.net/manual/pl/ref.pcre.php
http://pl.php.net/manual/pl/ref.regex.php

Pozdro!
Go to the top of the page
+Quote Post
pfan
post
Post #8





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 30.03.2005

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


Cytat(Radarek @ 2005-05-30 19:44:32)
No to powiedz konkretnie co chcesz zrobic to ktos na pewno ci pomoze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

mamy np.
$text = 'wyraz1 wyraz2 wyraz3 wyraz1';
wiec jak wyrzucic wyraz1 bo sie powtarza ?
Go to the top of the page
+Quote Post
Ociu
post
Post #9





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Można wyrazy wrzucić do tablicy i dać array_unique" title="Zobacz w manualu PHP" target="_manual.
Go to the top of the page
+Quote Post
pfan
post
Post #10





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 30.03.2005

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


a jak najszybciej wrzucic do tablicy, bo tekst jest dosc dlugi
Go to the top of the page
+Quote Post
strife
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Wymyśliłem coś takiego na szybko:
  1. <?php
  2.  
  3.  $text = 'wyraz1 wyraz2 wyraz3 wyraz1';
  4.  
  5. $z = explode(' ', $text);
  6.  
  7. foreach($z as $k)
  8. {
  9.  
  10.  $zed[$k] = $k;
  11.  
  12. }
  13. foreach($zed as $o)
  14. {
  15.  
  16.  echo $o;
  17.  
  18. }
  19.  
  20. ?>


Powinno działac jedynie musisz do tego dodać jeszcze space po explode uciął je.

Pozdro!
Go to the top of the page
+Quote Post
pfan
post
Post #12





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 30.03.2005

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


dziala,
tylko ze miedzy wyrazami nie ma odstepow, tzn. wynik to
wyraz1wyraz2wyraz3
Go to the top of the page
+Quote Post
strife
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat(pfan @ 2005-05-31 20:44:09)
dziala,
tylko ze miedzy wyrazami nie ma odstepow, tzn. wynik to
wyraz1wyraz2wyraz3

  1. <?php
  2.  
  3. $text = 'wyraz1 wyraz2 wyraz3 wyraz1';
  4.  
  5. $z = explode(' ', $text);
  6.  
  7. foreach($z as $k)
  8. {
  9.  
  10.  $zed[$k] = $k.' '; // o to chodzi?
  11.  
  12. }
  13. foreach($zed as $o)
  14. {
  15.  
  16.  echo $o;
  17.  
  18. }
  19.  
  20. ?>

(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
Go to the top of the page
+Quote Post
pfan
post
Post #14





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 30.03.2005

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


nom
wszystko dziala, wielkie dzieki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
FiDO
post
Post #15





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Mozna troche krocej:
  1. <?php
  2.  
  3. $text = 'wyraz1 wyraz2 wyraz3 wyraz1';
  4.  
  5. echo implode(' ', array_unique(explode(' ', $text)));
  6.  
  7. ?>
Go to the top of the page
+Quote Post
dvc
post
Post #16





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 29.04.2002
Skąd: Warszawa

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


a co dziala szybciej ? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
strife
post
Post #17





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat(dvc @ 2005-05-31 23:52:46)

Jeśli jest napisany krócej to zajmuje mniej bajtów, jeśli zajmuje mniej to chyba logiczne jest że będzie działał szybciej, chociaż niekoniecznie tak jest, ale lepsze są z reguły proste rozwiązania.
Go to the top of the page
+Quote Post
dvc
post
Post #18





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 29.04.2002
Skąd: Warszawa

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


Cytat(scarface @ 2005-05-31 22:56:13)
Cytat(dvc @ 2005-05-31 23:52:46)

Jeśli jest napisany krócej to zajmuje mniej bajtów, jeśli zajmuje mniej to chyba logiczne jest że będzie działał szybciej, chociaż niekoniecznie tak jest, ale lepsze są z reguły proste rozwiązania.

no jak sie okazuje nie zawsze mniej znaczy szybciej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
ot chocby glupie mnozenie tak naprawde to dodawanie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) w komputerze

chodzilo mi glownie o porownanie predkosci tych dwoch wczesniejszych rozwiazan;
moze ktos je przetestowal w jakiejs petli paro tysiecznej i zmierzyl czas (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
pfan
post
Post #19





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 30.03.2005

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


niestety nie radzi sobie juz z bardziej skompikowanym ciagiem, np. z adresami www typu htpp://domena.pl/podstrona.php
Go to the top of the page
+Quote Post
SongoQ
post
Post #20





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Nie zawsze krotszy kod jest szybszy, wszystko zalezy od wykorzystanych algorytmow.

Mozna to prosto przeanalizowac.
Kod @scarface wykorzystuje podzial na tablice, petla foreach (jak wiadomo jest to kopia tablicy (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) ), a kod @FiDO - tworzenie tablicy i zwrocenie unikalnych pozycji.

Z tego co pamietam array_unique operuje na orginalnej tablicy czyli ten kod bedzie optymalniejszy.
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: 29.09.2025 - 19:03