Piotr Stanek

Piotr Stanek Programista PHP /
JS developer

Temat: strpos

strpos.

mam np zdanie.

Kinoman idzie do kina

i ja szukam słowa kino.. w tym zdaniu nie ma takiego słowa "kino" to cześć słowa "kinoman" ...

if ($pos != '')
{
//sprawdzamy czy duza litera czy mala
$tag_tmp[$atag[$i]['tag']] = $atag[$i]['tag'];
}

jak zrobić by strpost nie znalał nic w tym przypadku

ale np jak bedzie zdanie kinoman idzie do kino to znajdzie :)

Temat: strpos

W tym przypadku nie szukasz ciągu znaków "kino" tylko jednego z ciągu znaków " kino.", " kino, ", " kino!" itd. Generalnie musisz szukać czegoś innego, niż zamierzałeś ;-)
Piotr Stanek

Piotr Stanek Programista PHP /
JS developer

Temat: strpos

a co jak kino jez na początku zdania . :) inaczej rozwiązałem potem pokaże może komuś się przyda.

Temat: strpos

Piotr Stanek:
a co jak kino jez na początku zdania . :)

Nie wiem, chodziło mi o zasugerowanie tylko zmiany sposobu myślenia :)
inaczej rozwiązałem potem pokaże może komuś się przyda.

O właśnie o to mi chodziło ;-)

konto usunięte

Temat: strpos


$text = 'Kinoman idzie do kina';
$found = false;

$text_helper = strtolower($text);

if(preg_match("^([ ]+)?kino([ !\.\?]+)?$", $text_helper)) $found = true;

var_dump($found);


pisane z palca może wymagać poprawki :)Jakub Świegot edytował(a) ten post dnia 30.09.11 o godzinie 14:22
Piotr Stanek

Piotr Stanek Programista PHP /
JS developer

Temat: strpos

mam tak i dziala prawie tzn tak jak strpos tylko wyrażenie trzeba poprawić.

mam takie coś.

preg_match_all("/".$row['tag'] ."[^a-z]/i", $desc, $matches[$row['id']], PREG_OFFSET_CAPTURE);

i np szukamy słował Włos

zdanie: Kupując preparaty do włosów, mamy podany składnik.

i znajduję mi je tutaj.
Stanisław P.

Stanisław P. Software designer

Temat: strpos

Jak już preg_match, to od łapania końca / początku słowa jest odpowiedni syntax:
\b     Any word boundary character

Preg_match'ujesz na "\bkino\b".
Piotr Stanek

Piotr Stanek Programista PHP /
JS developer

Temat: strpos

hm nie łapie

tak

preg_match_all("\b".$row['tag'] ."\b", $desc, $matches[$row['id']], PREG_OFFSET_CAPTURE);

nie działa

preg_match_all("/b".$row['tag'] ."[^a-z]/b", $desc, $matches[$row['id']], PREG_OFFSET_CAPTURE);
tak tez

bez _all to samo ...
Piotr Stanek

Piotr Stanek Programista PHP /
JS developer

Temat: strpos

tak tez nie dziala

if (preg_match("/\b".$row['tag']."\b/i", $desc)) {
$tag_tmp[$row['tag']] = $row['tag'] ;
}

konto usunięte

Temat: strpos

Zamiast męczyć się z wyrażeniami regularnymi, podziel tekst na słowa za pomocą str_word_count, a potem sprawdź, czy dane słowo znajduje się w tablicy.
Piotr Stanek

Piotr Stanek Programista PHP /
JS developer

Temat: strpos

Tomasz głupie rozwiązanie a co jak będę szukał słowa np "mieszek włosowy"

i te słowo ma potem stać sie linkiem tag,mieszek+włosowy.html

wiec odpada..

konto usunięte

Temat: strpos

Piotr Stanek:
Tomasz głupie rozwiązanie a co jak będę szukał słowa np "mieszek włosowy"

Czy Ty na pewno jesteś świadom tego co piszesz?
Piotr Stanek

Piotr Stanek Programista PHP /
JS developer

Temat: strpos

tak

konto usunięte

Temat: strpos

Piotr Stanek:
tak

Mam co do tego uzasadnione wątpliwości.

Co to problemu opisanego niezdarnie w pierwszym poście: naucz się wyrażeń regularnych, nie będzie to czas stracony.
Piotr Stanek

Piotr Stanek Programista PHP /
JS developer

Temat: strpos

mam tak:

while ($row = mysql_fetch_assoc($atag))
{

if (substr_count($desc, $row['tag']) != '0')
{
//sprawdzamy czy duza litera czy mala
$tag_tmp[$row['tag']] = $row['tag'] ;
}
}

problem dalej występuje

wyrażenie fajna sprawa ale czasu na dogłębną naukę nie mamPiotr Stanek edytował(a) ten post dnia 30.09.11 o godzinie 20:29
Piotr Stanek

Piotr Stanek Programista PHP /
JS developer

Temat: strpos

wygląda na to, że to działa.

while ($row = mysql_fetch_assoc($atag))
{
$matches = array();
preg_match_all("/\b".$row['tag'] ."[^a-z]/i", $desc, $matches[$row['id']], PREG_OFFSET_CAPTURE);
if ($matches[$row['id'] ] [0][0][0] !='')
{
if (substr_count($desc, $row['tag']) != '0')
{
$tag_tmp[$row['tag']] = $row['tag'] ;
}
}
}

chyba :)

konto usunięte

Temat: strpos

'/(^|\b)' . $word . '($|\b)/iu'
Piotr Stanek

Piotr Stanek Programista PHP /
JS developer

Temat: strpos

aha @Łukasz masz wątpliwości pokaż krótką metodę gdzie korzystasz z pomocy str_word_count()
metoda ma pokazać listę wystąpień tagów:

zdanie:
Mieszek włosowy jest fajny. Zdrowotny żel do włosów ma wpływ na długość cebulek włosów.

szukamy słów

włos,włosów,mieszek włosowy.

wynikiem powinno być:

włos - 0
włosów - 2
Mieszek włosowy - 1
Piotr Stanek

Piotr Stanek Programista PHP /
JS developer

Temat: strpos

Łukasz K.:
'/(^|\b)' . $word . '($|\b)/iu'


nie działa......

konto usunięte

Temat: strpos

Piotr Stanek:
Łukasz K.:
'/(^|\b)' . $word . '($|\b)/iu'


nie działa......

Działa ;)

Jeśli nie, to pokaż jak to umieściłeś w kodzie.



Wyślij zaproszenie do