Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Dzielenie string na bloki znaków
Cobweb
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 18.07.2007

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


Witam!

Jako że jest to mój pierwszy post i dopiero zaczynam przygodę z php i mysql to proszę o wyrozumiałość.

Mam w bazie mysql kolumnę, która zawiera numery telefonów w następującej postaci 0445556677, problem polega na tym, aby wyświetlany numer na stronie był w takiej postaci: 044 555 66 77, szukając rozwiązania natknąłem się na funkcję substr i spłodziłem coś takiego:

  1. <?php
  2. $kierunkowy = substr($tel, 0, 3);
  3. $numer1 = substr($tel, 3, 3);
  4. $numer2 = substr($tel, 6, 2);
  5. $numer3 = substr($tel, 8, 2);
  6. $telefon = $kierunkowy . " " .$numer1 . " " . $numer2 . " " . $numer3;
  7. ?>


W zasadzie efekt jest taki jak być powinien, ale kod jest raczej bardzo bardzo ...., czy nie można by wydobyć poszczególnych bloków kodu za jednym wywołaniem? Byłbym wdzięczny za jakieś pomysły ewentualnie, jaką inną funkcją w php lub mysql powinienem się zainteresować?

Z góry dziękuję za pomoc!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
qwaq
post
Post #2





Grupa: Zarejestrowani
Postów: 162
Pomógł: 1
Dołączył: 15.05.2007
Skąd: Łódź

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


może ci sie przyda :

jeśli masz string $www="ala ma kota";
to:
$www[0]="a"
$www[1]="l"
$www[2]="a"
$www[3]=" "
$www[4]="m"
$www[5]="a"
$www[6]=""
itd


--------------------
Chcę kobietę!!! Cierpliwą i wyrozumiałą jak stado bydła przed dojeniem.....

Życie jest jak papier toaletowy-długie, szare i do dupy, ale na szczęście czasem pachnie rumiankiem


wynajmę mieszkanie?
Go to the top of the page
+Quote Post
bmL
post
Post #3





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

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


Może chodzi ci o coś takiego:
  1. <?php
  2. function podzielnumer($nr)
  3. {
  4. $kierunkowy = substr($nr, 0, 3);
  5. $numer1 = substr($nr, 3, 3);
  6. $numer2 = substr($nr, 6, 2);
  7. $numer3 = substr($nr, 8, 2);
  8. global $telefon;
  9. $telefon = $kierunkowy . " " .$numer1 . " " . $numer2 . " " . $numer3;
  10. }
  11. $tel='0445556677';
  12. podzielnumer($tel);
  13. echo $telefon;
  14. echo '<br>';
  15. podzielnumer('0445556677');
  16. echo $telefon;
  17. echo '<br>';
  18. podzielnumer('1234567890');
  19. echo $telefon;
  20. ///itp...///
  21. ?>

albo jeszcze krócej:
  1. <?php
  2. function podzielnumer($nr)
  3. {
  4. $kierunkowy = substr($nr, 0, 3);
  5. $numer1 = substr($nr, 3, 3);
  6. $numer2 = substr($nr, 6, 2);
  7. $numer3 = substr($nr, 8, 2);
  8. $telefon = $kierunkowy . " " .$numer1 . " " . $numer2 . " " . $numer3;
  9. echo $telefon;
  10. }
  11. $tel='0445556677';
  12. podzielnumer($tel);
  13. echo '<br>';
  14.  
  15. podzielnumer('0445556677');
  16. echo '<br>';
  17.  
  18. podzielnumer('1234567890');
  19. ///itp...///
  20. ?>


Ten post edytował bmL 19.07.2007, 16:03:18


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #4





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Ja proponuje tak:
  1. <?php
  2. preg_match('/([0-9]{3})([0-9]{3})([0-9]{2})([0-9]{2})/', $tel, $matches);
  3. $tel = $matches[1] . ' ' . $matches[2] . ' ' . $matches[3] . ' ' . $matches[4];
  4. ?>

~qwaq tego chyba nie czytałeś: (Źródło: pl.php.net):
Cytat
Dostęp do pojedynczego znaku łańcucha jest możliwy po podaniu jego indeksu (ofsetu) w nawiasach klamrowych, zaraz po nazwie zmiennej. Pierwszy znak w łańcuchu ma indeks zero.


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
Cobweb
post
Post #5





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 18.07.2007

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


Witam!

Dzięki za zainteresowanie i pomoc, chodziło mi o coś takiego jak napisał JaRoPHP.

Pozdrawiam!
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 19:59