Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Jak wykryć dany ciąg, bez wyrażeń regularnych
mlawnik
post
Post #1





Grupa: Zarejestrowani
Postów: 455
Pomógł: 49
Dołączył: 12.04.2010

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


Witam,

pobieram sobie zawartość pewnej komórki w tabeli, przykładowo wygląda ona tak:

Przykład 1:
EPR 5

Przykład 2:
KK 3+

Potrzebny jest mi sam numer, ale jeżeli ma on +, to chciałbym otrzymać 2,5.
Mogę sobie zrobić tablicę i podmieniać 2+ ->2,5, ale czy jest jakiś sposób, aby wykryć numer z +, inny niż wyrażenia regularne?

Pozdrawiam,
mlawnik

EDIT:
Wcześniej używałem: filter_var($gradeCell, FILTER_SANITIZE_NUMBER_INT); ale nie wykrywa +, choć powinno: "Remove all characters except digits, plus and minus sign."

Ten post edytował mlawnik 7.06.2013, 15:40:56


--------------------
Pozdrawiam,
mlawnik

Cytat(nospor)
Jedzmy gówno.... miliony much nie może się przecież mylić
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Talidali
post
Post #2





Grupa: Zarejestrowani
Postów: 79
Pomógł: 19
Dołączył: 31.05.2013

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


Nie ma. Dlaczego tak zapisujesz do bazy? Nie możesz zapisywać 2,5 zamiast 2+?


--------------------
Szukam pracy za granicą jako FrontendDeveloper - AKTUALNE

forum.php.pl/PoszukujePraca_Frontend_Developer_t218107.html
Go to the top of the page
+Quote Post
peter13135
post
Post #3





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


tutaj zdaje się że, nawet możesz użyć sscanf'a.
Nie musisz robić tablicy, po prostu jeśli wykryjesz znak +, to dodajesz do liczby 0.5;


--------------------
:)
Go to the top of the page
+Quote Post
mlawnik
post
Post #4





Grupa: Zarejestrowani
Postów: 455
Pomógł: 49
Dołączył: 12.04.2010

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


@Talidali

To komórka w tabeli html, nie mysql. To nie ja tak zapisałem, tylko muszę to odczytać.

@peter12345

W ten sposób? I jaki drugi argument do sscanf?

  1. <?php
  2. $gradeCell = 'EPR 5+'
  3. $gradeValue = filter_var($gradeCell, FILTER_SANITIZE_NUMBER_INT);
  4. $hasPlus = sscanf($gradeCell, $argumentTwo);
  5. if($hasPlus >= 1){
  6. $gradeValue++;
  7. }
  8. ?>
  9.  


EDIT: ROZWIĄZANE, DLA POTOMNYCH:

http://ideone.com/2SdBMG

  1. <?php
  2. $gradeCell = 'EPR 5+'; //get the cell value
  3. $gradeValue = filter_var($gradeCell, FILTER_SANITIZE_NUMBER_INT); //grade numerical value (the number from cell)
  4. //See if it has +, add a 0,5 then
  5. $hasPlus = strpos($gradeCell, '+');
  6. if ($hasPlus !== FALSE) {
  7. $gradeValue = $gradeValue[0] + 0.5;//Stringi mozna traktować jako tablice znaków, czegoś się nauczyłem tongue.gif
  8. }
  9. echo $gradeValue;
  10.  
  11. ?>


Ten post edytował mlawnik 7.06.2013, 16:30:25


--------------------
Pozdrawiam,
mlawnik

Cytat(nospor)
Jedzmy gówno.... miliony much nie może się przecież mylić
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: 22.08.2025 - 02:15