Badanie nietypowego stringa

Badanie nietypowego stringa

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

  • Rejestracja: dni
  • Ostatnio: dni
0

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

Kopiuj
    [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:

Kopiuj
[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

Kopiuj
if(
$badany_string!=''&&
$badany_string!=' '&&
$badany_string!='\n'){}
Maciej Cąderek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1264
0

Zapewne:

Kopiuj
$string == "\n"

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

  • Rejestracja: dni
  • Ostatnio: dni
0
Maciej Cąderek napisał(a):

Zapewne:

Kopiuj
$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.

  • Rejestracja: dni
  • Ostatnio: dni
0
Czarny Mleczarz napisał(a):
Maciej Cąderek napisał(a):

Zapewne:

Kopiuj
$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

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

przepuszcza ten string

  • Rejestracja: dni
  • Ostatnio: dni
0
Maciej Cąderek napisał(a):

Zapewne:

Kopiuj
$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!

Maciej Cąderek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1264
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.

no_solution_found
  • Rejestracja: dni
  • Ostatnio: dni
0

następnym razem spróbuj var_export

JA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 35
0

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

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

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.