Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jak wykryć dany ciąg, bez wyrażeń regularnych
Forum PHP.pl > Forum > Przedszkole
mlawnik
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."
Talidali
Nie ma. Dlaczego tak zapisujesz do bazy? Nie możesz zapisywać 2,5 zamiast 2+?
peter13135
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;
mlawnik
@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. ?>
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.