Funkcja str_replace nie zamienia tego co chce

Funkcja str_replace nie zamienia tego co chce
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam próbuje odczytać plik csv za pomocą PHP plik odczytuję i mam zamiar w zmiennej $ilosc przechować tylko cyfry lub liczby, ale funckja str_replace nie zmienia mi słowa "powyżej 30" na samo 30, co robię źle

Kopiuj
 
<?php

$handle = fopen('csvilosc.csv','r');

 while (($data = fgetcsv($handle, 0, ",")) !== FALSE) {		
 $ilosc= $data[0];

 str_replace("powyżej 30", "30", $ilosc);
 
 echo'<table><tr>';
 echo $ilosc;
 echo'</tr></table>';
 }

?>	


Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

Jakbym miał wróżyć z fusów to powiedziałbym: kodowanie polskich znaków :)

ŚM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 44
0

oprócz kodowania - nie zapisujesz nigdzie wyniku zamiany - zamieniasz w powietrzu i nie przypisujesz wyniku z powrotem do zmiennej

poza tym zamiast zamieniać wszystko co nie jest liczbą na pustkę, lepiej po prostu wyrażeniem regularnym (\d+) wyciągnąć ze stringa liczbę

kaczus
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łódź
  • Postów: 1403
1

Zmień na:

Kopiuj
$ilosc = str_replace("powyżej 30", "30", $ilosc);
  • Rejestracja: dni
  • Ostatnio: dni
0

heh kodowanie mam chyba dobre bo próbowałem na ISO-8859-2 na UTF-8 i bez zmian i w pliku csv mam takie i w meta html, no chyba ze coś kręcę :)

jedyne co mi przychodzi do głowy to ze str nie chce nic robić z danymi w tablicy czyli moim data[8],bo jak ominę całą to pętlę while i utworze zmienną np

Kopiuj
$cos = ponad 100;

i do tego zastosuje

Kopiuj
$a = str_replace("ponad", "", $cos)

to usunie ponad i mam samo 100 bede walczy dalej

dodanie znaczników <code class="php"> - @furious programming

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.