Pytanko o niechciane zachowanie funkcji PHP
Pytanko o niechciane zachowanie funkcji PHP
Napisalem sobie prosty skrypcik.
Przeszukuje on folder, odczytuje dane zawarte w plikach.
Teraz jesli ktos chce cos znalezc podaje to w odpowiednim polu, skrypcik szuka tych informacji w plikach i wyswietla.
Sa to pliki tekstowe.
Problem jest w tym ze wszystko bylo tworzone pon winde + PHPtriad - i w tym przypadku wszystko jest ok, kazde zapytanie zostanie obsluzone. Ale kiedy wrzucilem to na linuxa+PHP, to samo zapytanie do bazy nie pokazuje zadnych rezultatow???
Co moze byc tego przyczyna?
Zla konfiguracja PHP, zle prawa do plikow (watpie), czy ograniczenia systemowe (powiazane z konfiguracja)?
Przeszukuje on folder, odczytuje dane zawarte w plikach.
Teraz jesli ktos chce cos znalezc podaje to w odpowiednim polu, skrypcik szuka tych informacji w plikach i wyswietla.
Sa to pliki tekstowe.
Problem jest w tym ze wszystko bylo tworzone pon winde + PHPtriad - i w tym przypadku wszystko jest ok, kazde zapytanie zostanie obsluzone. Ale kiedy wrzucilem to na linuxa+PHP, to samo zapytanie do bazy nie pokazuje zadnych rezultatow???
Co moze byc tego przyczyna?
Zla konfiguracja PHP, zle prawa do plikow (watpie), czy ograniczenia systemowe (powiazane z konfiguracja)?
Re: Pytanko o niechciane zachowanie funkcji PHP
Z mojego doświadczenia: jeżeli cokolwiek działa na wind***sie to znaczy, że jest schrzanione, bo wind***s z definicji nie działa... Tak serio, to to powyżej jest prawdą... Przyczyn Twojego problemu może być więcej niż błędów w wind**sie (jeżeli to w ogóle możliwe). Gdybyś podał skrypt, powiedziałbym cos więcej...
Re: Pytanko o niechciane zachowanie funkcji PHP
Prosze bardzo oto moj skrypt:
Kod: Zaznacz cały
$arFiles = ListDir("txt/");
for ($i =0; $i < count($arFiles); $i++)
{
if (substr($arFiles[$i], 0, 3) != "bs_")
continue;
$arTimeFile = file("txt/{$arFiles[$i]}");
$arCityNames = explode("|", $arTimeFile[0]);
for ($b = 1; $b < count($arTimeFile); $b++)
{
// Dziuelimy linie
list($strPrzyjazd, $strKierunek, $strPrzez, $strOdjazd) = explode("|", $arTimeFile[$b]);
if ((!(stripos($strKierunek, $BusTo) === FALSE) || !(stripos($strPrzez, $BusTo) === FALSE)) && in_array_cin($BusFrom, $arCityNames))
{
// wyswietlam dane
}
}
} // for
Re: Pytanko o niechciane zachowanie funkcji PHP
Dalej Ci nie pomogę bo nie dałes funkcji ListDir i in_array_cin!! Spróbuj powstawiać co jakiś czas echa. np: print_r($arFiles); po ListDirze i zobacz w którym miejscu wynij nie jest taki jak zwykł być. (a jak to nic nie da to daj na forum te funkcje i może przykładowy plik .txt.)
PS.
Ja piszę false małymi literami i nie zdziwiłbym się gdyby pod win***owsem PHP nie rozróżniało...
PS.
Ja piszę false małymi literami i nie zdziwiłbym się gdyby pod win***owsem PHP nie rozróżniało...
Re: Pytanko o niechciane zachowanie funkcji PHP
to bylo pierwsze co zrobilem.
ale listowanie katalogu jest ok.
Do tej pory udalo mi sie ustalic ze probrlemem jest porownywanie.
Windows nie rozriznia malych i wielkich liter a linux tak i to moze byc problemem.
ale listowanie katalogu jest ok.
Do tej pory udalo mi sie ustalic ze probrlemem jest porownywanie.
Windows nie rozriznia malych i wielkich liter a linux tak i to moze byc problemem.
Kod: Zaznacz cały
function stripos($haystack, $needle, $offset=0)
{
return strpos(strtolower($haystack), strtolower($needle), $offset);
}
function in_array_cin($strItem, $arItems)
{
$bFound = FALSE;
foreach ($arItems as $strValue)
{
if (strcasecmp($strItem, $strValue) == 0)
$bFound = TRUE;
}
return $bFound;
}Re: Pytanko o niechciane zachowanie funkcji PHP
[php]<?php
$arTimeFile = file("txt/{$arFiles[$i]}");
?>[/php]
Czy pliki mają nazwę {coścoścoś} ??
zamiast stripos możesz chyba użyć strcasecmp.
problemem jest porównywanie - ok. które?? Rozbij ten długaśny warunek na kilka mniejszych i powstawiaj echa, a powinno sie pokazać które porównywanie jest złe...
$arTimeFile = file("txt/{$arFiles[$i]}");
?>[/php]
Czy pliki mają nazwę {coścoścoś} ??
zamiast stripos możesz chyba użyć strcasecmp.
problemem jest porównywanie - ok. które?? Rozbij ten długaśny warunek na kilka mniejszych i powstawiaj echa, a powinno sie pokazać które porównywanie jest złe...
Re: Pytanko o niechciane zachowanie funkcji PHP
Nie pliki maja nazwy bs_nazwa.txt.
A ja lapie w klamry bo tak jest najbezpieczniej chyba.
Juz probowalem z wszystkimi mozliwosciami porownywania stringow.
Probowalem zawet stristr - no bo jesli sa rowne to jeden zawiera sie w drugim tak?
Ale caly czas ten sam efekt jak bym tego nie napisal na windows jest ok a na linuchu PHP daje dupy
A ja lapie w klamry bo tak jest najbezpieczniej chyba.
Juz probowalem z wszystkimi mozliwosciami porownywania stringow.
Probowalem zawet stristr - no bo jesli sa rowne to jeden zawiera sie w drugim tak?
Ale caly czas ten sam efekt jak bym tego nie napisal na windows jest ok a na linuchu PHP daje dupy
-
Krzysztof Aszkiełowicz
- Zaczyna działać

- Posty: 458
- Rejestracja: pn maja 26, 2003 9:29 pm
- Lokalizacja: Warszawa
- Kontakt:
Re: Pytanko o niechciane zachowanie funkcji PHP
Ja w PHP piszę pod WIndowsem, gdy uploaduję na serwer nie mam żadnych kłopotów z odczytem/zapisem musze tylko mieć ustawione odpowiednie chmody. Nie mam pojęcia co jest nie tak w Twoim kodzie 
Re: Pytanko o niechciane zachowanie funkcji PHP
Juz wiem problemem jest funkcje porownujace, przeszukujące stringi.
Odkrylem ze nie radzą sobie z porównywaniem polskich znaków.
Jak to sprawdzilem?
Wynik byl taki odpalony na linuxie:
zZ false
stristr zZ true
str to lower: Ż
str to lower: ż
str to upper: Ż
str to upper: ż
i co wy na to??
Odkrylem ze nie radzą sobie z porównywaniem polskich znaków.
Jak to sprawdzilem?
Kod: Zaznacz cały
if (strcasecmp("ż", "Ż") == 0)
$BodyHTMLData .= "zZ true<br>";
else
$BodyHTMLData .= "zZ false<br>";
if (stristr("ż", "Ż") == 0)
$BodyHTMLData .= "stristr zZ true<br>";
else
$BodyHTMLData .= "stristr zZ false<br>";
$BodyHTMLData .= "str to lower: " . strtolower("Ż") . "<br>";
$BodyHTMLData .= "str to lower: " . strtolower("ż") . "<br>";
$BodyHTMLData .= "str to upper: " . strtoupper("Ż") . "<br>";
$BodyHTMLData .= "str to upper: " . strtoupper("ż") . "<br>";
zZ false
stristr zZ true
str to lower: Ż
str to lower: ż
str to upper: Ż
str to upper: ż
i co wy na to??
Re: Pytanko o niechciane zachowanie funkcji PHP
Ufffffff.
Problem byl takei jak napisalem.
Po wywolaniu funkcji setlocale(LC_ALL, "pl");
funkcje porownojace nei maja juz takich zgrzytów.
Dzieki za pomoc.
Problem byl takei jak napisalem.
Po wywolaniu funkcji setlocale(LC_ALL, "pl");
funkcje porownojace nei maja juz takich zgrzytów.
Dzieki za pomoc.

