Wątek przeniesiony 2016-06-01 13:47 z PHP przez ŁF.

Badanie nietypowego stringa

0

Witajcie. Chciałem was prosić o pomoc w sklasyfikowaniu string-a, który po użyciu print_r(); prezentuje się następująco:

    [12] => Array
        (
            [tresc] => 

            [id] => 13
            [typ] => inny
        )

Celem jest oczywiście wykluczenie elementów, których ['tresc'] jest równa dokładnie temu co przedstawia [12]['tresc'].

Dla porównania wrzucam inny element:

[9] => Array
        (
            [tresc] => 60
            [id] => 10
            [typ] => inny
        )

W tym przypadku print_r() wyświetla normalnie bez "przejścia do kolejnego wiersza" wartość elementu [9]['tresc'].

Chciałbym prosić o pomoc w sklasyfikowaniu tego co to za string 12['tresc'];

Dotychczas testowałem

if(
$badany_string!=''&&
$badany_string!=' '&&
$badany_string!='\n'){}
0

Zapewne:

$string == "\n"

Możesz zawsze sprawdzić kod ASCII znaku za pomocą funkcji ord().

0
Maciej Cąderek napisał(a):

Zapewne:

$string == "\n"

Możesz zawsze sprawdzić kod ASCII znaku za pomocą funkcji ord().

Testowałem właśnie "\n" i nie pomogło. Po użyciu ord() wyrzuciło 10.

0
Czarny Mleczarz napisał(a):
Maciej Cąderek napisał(a):

Zapewne:

$string == "\n"

Możesz zawsze sprawdzić kod ASCII znaku za pomocą funkcji ord().

Testowałem właśnie "\n" i nie pomogło. Po użyciu ord() wyrzuciło 10.

Sprawdziłem też na wszelki wypadek strlen() i na tym ciągu dało wynik 1 także to na pewno znak 10, ale mimo to

if($wyrazy[$x]!=''&&$wyrazy_[$x]!=' '&&$wyrazy_[$x]!="\n"){}

przepuszcza ten string

0
Maciej Cąderek napisał(a):

Zapewne:

$string == "\n"

Możesz zawsze sprawdzić kod ASCII znaku za pomocą funkcji ord().

Ok dzięki :D Dopiero po wrzuceniu na forum kodu ogarnąłem że miałem $wyrazy_[$x] zamiast $wyrazy[$x] w kodzie.

Także działa. Dziekuje!

0

Czyli dobrze 10 w kodzie ANSII to znak nowej linii - pewnie uzywasz pojedynczych cudzysłowów a powinieneś użyć podwójnych - dokładnie tak jak napisałem.

ord() przyjmuje tylko pojedynczy znak, jeśli siedzi tam coś więcej to lepiej sprawdzić string za pomocą quoted_printable_encode($str) - dostaniesz podobny wynik tylko nie w liczbach dziesiętnych a szesnastkowych.

0

następnym razem spróbuj var_export

0

Ja jeszcze dodam, że var_dump wyświetla dokładniejsze inforamcje niż print_r. Polecam sprawdzić:

$testArray = ['test'=> 'value'];
print_r($testArray);
var_dump($testArray);

1 użytkowników online, w tym zalogowanych: 0, gości: 1