Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Jak pogrubić w stringu liczbę / cyfrę ?
Setesh
post 14.05.2007, 09:26:29
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

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


Jak można sprawdzić czy w stringu znajduje się liczba/cyfra między literami/słowami i ją pogrubić ?

chodzi mi o coś takiego :

  1. <?php
  2. $stan_zosi = 'Zosia ma 53.12 zł które musi wydać na bilet miesięczny i chleb. zakładając że ch
    leb kosztuje 2.30 zł a bilet 42 zł to ile zostanie jej reszty którą będzie mogła 
    przeznaczyć na kosmetyki ?'
    ;
  3.  
  4. // Z tego wyżej chciałem zrobić tak :
  5.  
  6. $stan_zosi = 'Zosia ma <b>53.12</b> zł które musi wydać na bilet miesięczny i chleb. zakładając że chleb kosztuj
    e <b>2.30</b> zł a bilet <b>42</b> zł to ile zostanie jej reszty którą będzie mogła przeznaczyć na kosmetyki ?'
    ;
  7. ?>


Ktoś wie jak to zrobić ? Ja szukam właśnie informacji bo ponoć jest funkcja isnumeric która ponoć sprawdza czy wartość zmiennej jest numeryczna ale nie wiem czy zrobię to sad.gif


--------------------
Znudził Ci się wygląd twojej v39'ki ? Zmień to! :)

| Google | CodeGear | Swiss Delphi Center (ENG) | digitalmars.com | 4programmers.net | dsdt.info | BinBoy | delphi.cartall.com.pl | CPW.net.pl | cyfbar.republika.pl|
Go to the top of the page
+Quote Post
nospor
post 14.05.2007, 09:34:52
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. <?php
  2. $stan_zosi = 'Zosia ma 53.12 zł które musi wydać na bilet miesięczny i chleb. zakładając że chleb kosztuje 2.30 zł a bilet 42 zł to ile zostanie jej reszty którą będzie mogła przeznaczyć na kosmetyki ?';
  3.  
  4. $stan_zosi = preg_replace('/(d+.?d+)/', '<b>1</b>',$stan_zosi);
  5. echo $stan_zosi;
  6. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Setesh
post 14.05.2007, 15:37:47
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

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


Dziwne... w jednym przypadku mi działa a w innym nie chce to zadziałać sad.gif

  1. <?php
  2. $Zawartosc = preg_replace('/(d+.?d+)/', '<font color=red>1</font>', $Zawartosc);
  3. ?>


--------------------
Znudził Ci się wygląd twojej v39'ki ? Zmień to! :)

| Google | CodeGear | Swiss Delphi Center (ENG) | digitalmars.com | 4programmers.net | dsdt.info | BinBoy | delphi.cartall.com.pl | CPW.net.pl | cyfbar.republika.pl|
Go to the top of the page
+Quote Post
nospor
post 14.05.2007, 15:52:18
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




oj.... to podaj ten przypadek, gdy ci nie dziala.
Być moze popelnilem jakis blad


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Setesh
post 14.05.2007, 16:08:29
Post #5





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

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


Nie chodzi mi o to że błąd bo nie ładnie jest pouczać kogoś jak samemu się na tym nie zna ale... co do "błędów" :

jak mam napisane "F11" to koloruje (zmieniłem pogrubianie na kolor czerwony) chociaż nie powinno natomiast jak jest "5/2000" to koloruje "2000" ale 5 już nie sad.gif

Nie żebym pouczał ale to chyba wina tego wpisu w 1 parametrze bo jak nie i coś u mnie to chyba się pochlastam sad.gif

Czy da się zrobić tak aby było że tylko cyfra musi być aby pokolorowało a obok niej spacje nawias lub coś innego byle nie litera ?

Tak samo jak piszę zm=12 to nie koloruje 12 sad.gif

Ten post edytował Setesh 14.05.2007, 16:11:46


--------------------
Znudził Ci się wygląd twojej v39'ki ? Zmień to! :)

| Google | CodeGear | Swiss Delphi Center (ENG) | digitalmars.com | 4programmers.net | dsdt.info | BinBoy | delphi.cartall.com.pl | CPW.net.pl | cyfbar.republika.pl|
Go to the top of the page
+Quote Post
Darti
post 14.05.2007, 16:16:21
Post #6





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Jeśli mogę się wtrącić: zacznij się chlastać bo kod od @nospor działa idealnie i wg zamierzeń. Ma kolorować (pogrubiać) liczby i liczby rozdzielone kropką i to robi.


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
nospor
post 14.05.2007, 16:18:52
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@Darti no nie do konca, bo okazalo sie, ze ma tez kolorwac takie przypadki 5/2000 a nie kolorowac F11

@Setesh
Oto chodzi:
Kod
$stan_zosi = 'Zosia ma $zm=12 F11 ala 5/200 ola 53.12 zł które musi wydać na bilet miesięczny i chleb. zakładając że chleb kosztuje 2.30 zł a bilet 42 zł to ile zostanie jej reszty którą będzie mogła przeznaczyć na kosmetyki ?';

$stan_zosi = preg_replace('/[^\w](\d+)/', '<b>\\0</b>',$stan_zosi);
echo $stan_zosi;

?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Setesh
post 14.05.2007, 17:06:12
Post #8





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

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


no już bardziej smile.gif F11 itp nie koloruje ale... chodziło mi o kolorowanie samych liczb/cyfr.

Aktualnie to jak mam

  1. <?php
  2. $stan_zosi = 'Zosia ma -1 (0, "sss", 1.123); $zm=12 F11 ala 5/200 ola 53.12 zł które musi wydać na bilet miesięczny i chleb. zakładając że chleb kosztuje 2.30 zł a bilet 42 zł to ile zostanie jej reszty którą będzie mogła przeznaczyć na kosmetyki ?';
  3.  
  4. $stan_zosi = preg_replace('/[^w](d+)/', '<b>0</b>',$stan_zosi);
  5. echo $stan_zosi;
  6. ?>


to wynik jest taki że :

  1. Zosia ma <b>-1</b> <b>(0</b>, "sss",<b> 1</b><b>.123</b>); $zm<b>=12</b> F11 ala<b> 5</b><b>/200</b> ola<b> 53</b><b>.12</b> zł które musi wydać na bilet miesięczny i chleb. zakładając że chleb kosztuje<b> 2</b><b>.30</b> zł a bilet<b> 42</b> zł to ile zostanie jej reszty którą będzie mogła przeznaczyć na kosmetyki ?


Chodzi mi o to że jak będzie liczba czy cyfra to aby ją pogrubiło czyli tak jak myślę to...

jak znajdzie coś takiego jak niżej to niech wykona z tego (=>) to o co mi chodzi : (10.11 - niby losowa cyfra dynamicznie się zmieniająca)

Cytat
" 10.11" => " <b>10.11</b>"
",10.11" => ",<b>10.11</b>"
"=10.11" => "=<b>10.11</b>"
"-10.11" => "-<b>10.11</b>"
"10.11/10.11" => "<b>10.11</b>/<b>10.11</b>"
"10.11*10.11" => "<b>10.11</b>*<b>10.11</b>"
"10.11-10.11" => "<b>10.11</b>-<b>10.11</b>"
"10.11+10.11" => "<b>10.11</b>+<b>10.11</b>"

" 10.11/10.11" => " <b>10.11</b>/<b>10.11</b>"
",10.11*10.11" => ",<b>10.11</b>*<b>10.11</b>"
"=10.11-10.11" => "=<b>10.11</b>-<b>10.11</b>"
"-10.11+10.11" => "-<b>10.11</b>+<b>10.11</b>"


^- Coś właśnie tego typu ma być a jak znajdzie F11 czy jakakolwiek inna liczbę z literka obok (np : Zmienna1) to niech ją ominie

Możecie mi napisać gdzie znajdę opis składni tego pierwszego parametru odpowiedzialnego za maskę ? bo z tego jakoś nie mogę skumać co za co odpowiada a chcę też sam coś wykombinować (i najlepiej przed wami to sie pochwale że też robie a nie że siedzę na (_|_) i czekam aż wy zrobicie smile.gif )

// znikam na kilka godzin do szpitala jak przyjadę to dopisze co i jak i co ja wykombinuje jakby co

Ten post edytował Setesh 14.05.2007, 17:06:58


--------------------
Znudził Ci się wygląd twojej v39'ki ? Zmień to! :)

| Google | CodeGear | Swiss Delphi Center (ENG) | digitalmars.com | 4programmers.net | dsdt.info | BinBoy | delphi.cartall.com.pl | CPW.net.pl | cyfbar.republika.pl|
Go to the top of the page
+Quote Post
Kicok
post 14.05.2007, 17:34:52
Post #9





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


O wyrażeniach regularnych możesz poczytać na php.net lub na google poszukać jakiegoś kursu w języku polskim. Fakt, jest to trochę skomplikowane i nieczytelne dla laika, ale bardzo przydatne ;]

Np:
  1. <?php
  2.  
  3. $str = 'Zosia ma -1 (0, "sss", 1.123); $zm=12 F11 ala 5/200 ola 53.12 zł które musi wydać na bilet miesięczny i chleb. zakładając że chl
    eb kosztuje 2.30 zł a bilet 42 zł to ile zostanie jej reszty którą będzie mogła p
    rzeznaczyć na kosmetyki ?
  4.  
  5. 10.11
  6. ,10.11
  7. =10.11
  8. -10.11
  9. 10.11/10.11
  10. 10.11*10.11
  11. 10.11-10.11
  12. 10.11+10.11
  13.  
  14.  10.11/10.11
  15. ,10.11*10.11
  16. =10.11-10.11
  17. -10.11+10.11';
  18.  
  19.  
  20. $str = preg_replace( '/(^|[^a-z0-9])([0-9]+(.[0-9]+)?)/mi', '$1<b>$2</b>', $str );
  21. echo( nl2br( $str ) );
  22.  
  23. ?>

znaczy mniej więcej:
- znajdź początek tekstu/jednego wiersza ^
- lub |
- jakiś znak, nie będący ani literą ani cyfrą [^a-z0-9]
- a zaraz za tym mają być cyfry [0-9]
- ma ich być co najmniej jedna +
- za tymi cyframi poszukaj kropki \.
- a za nią kolejnych cyfr (co najmniej jedna) [0-9]+
- - kropka, a po niej cyfry (\.[0-9]+)
- - mogą wystąpić raz, ale nie muszą ?

Zamień to na:
- dane pobrane z pierwszego nawiasu okrągłego $1
- <b>
- dane z drugiego nawiasu okrągłego $2
- </b>

Ten post edytował Kicok 14.05.2007, 17:36:46


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
Setesh
post 14.05.2007, 20:05:57
Post #10





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

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


Ok wielkie dzięki za linka smile.gif już zabieram się za naukę smile.gif

ps... małe zapytanie... a dlaczego w kodzie 5/200 całe pogrubia a jak dam 5.10/200 to już pogrubia bez znaku (/) ?


--------------------
Znudził Ci się wygląd twojej v39'ki ? Zmień to! :)

| Google | CodeGear | Swiss Delphi Center (ENG) | digitalmars.com | 4programmers.net | dsdt.info | BinBoy | delphi.cartall.com.pl | CPW.net.pl | cyfbar.republika.pl|
Go to the top of the page
+Quote Post
Kicok
post 15.05.2007, 05:46:29
Post #11





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


?

Nigdy nie pogrubia znaku /:
Kod
$zm=<b>12</b> F11 ala <b>5</b>/<b>200</b> ola <b>53.12</b> z


--------------------
"Sumienie mam czyste, bo nieużywane."
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 Wersja Lo-Fi Aktualny czas: 16.07.2025 - 02:59