strpos nieznajduje jednego słowa - pozostałe odnajduje.

0

Cześć,
napisałem sobie skrypt w PHP, który m.in. próbuje znaleźć pewne słowo (klucz) w opisie. Mam taki warunek:

if(mb_strpos (mb_strtolower($opis,"UTF-8"), trim(mb_strtolower($categories[$i]->_slowo_kluczowe, "UTF-8")), 0, "UTF-8") !== false)
{...}

Powyższy warunek działa do wszystkich szukanych słów m.in. do: "pręt", "samochód", "Prace" itd. a słowa "wywóz" nie może znaleźć - mimo, że ono tam jest :-/
Czy orientuje się ktoś co może być nie tak i jak ewentualnie to naprawić?
Co mogę jeszcze zrobić, poza usunięciem białych znaków i zamianą znaków na małe/duże litery, żeby zwiększyć prawdopodobieństwo odnalezienia tego słowa?

Z góry dzięki..

1

Niemożliwe drogi kolego. Zobacz na ten kod:

<?php

var_dump(mb_stripos('zaplanuj wywóz śmieci', 'Wywóz'));

Rezultat: int(9) czyli działa
http://ideone.com/HufQ8W

P.S. Użyj mb_stripos() (szukanie bez uwzględnienia wielkości znaków) zamiast mb_strpos()

0

@Adam, też mi się wydaje to niemożliwe, a jednak...
Być może ma znaczenie fakt, że opis pobieram z pliku CSV (zamieniony z xls-a) a klucz z pliku txt.
Z drugiej strony txt jest w UTF-8 a dane z CSV zamieniam w skrypcie z windows-1250 na UTF-8 więc kodowanie powinno być takie samo. Na stronie również wyświetla mi identyczne słowa - a mimo wszystko warunek nie jest spełniany. :-/ Co ważne inne słowa mi znajduje :(
Może w opisie kryje się coś jeszcze, czego nie widać na pierwszy rzut oka? :-/

0

Cześć,
po kilku testach okazało się, że tak jak się obawiałem w pliku, gdzie trzymam słowa kluczowe na samym początku, przed słowem "wywóz" (które jest pierwsze w pliku), jest jakiś niewidoczny znak.
Niestety za nic nie mogę się go pozbyć.
Czy może mi ktoś powiedzieć co to może być za znak, jak ew. to sprawdzić, i jak go usunąć?
trim nie działa, replace('\n"/"\r" etc.) również...

słowa kluczowe trzymam w pliku txt w kodowaniu UTF-8 - każde słowo kluczowe w oddzielnej linii.

Będę wdzięczny za pomoc.

Aha, no i zapomniałem napisać, że var_dump zwraca mi coś takiego: string(3) ""

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