Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Сравнение двух слов


Автор: Самозванка 3.8.2007, 13:30
А есть в php такая функция: есть две текстовые cтроки. и надо определить является ли первая частью второй, то есть не равны а приблизительно равны...? Это для поиска вхождения 1ого слова по массиву 2ых.

Автор: pento 3.8.2007, 13:36
А если поискать первую во второй?

http://www.php.net/manual/en/function.strpos.php

Автор: murod 3.8.2007, 13:39
да есть примерно такая фунция http://www.php.net/manual/ru/function.similar-text.php


Автор: Самозванка 3.8.2007, 13:48
Спасибо! Совсем забыла про strpos...

Автор: Самозванка 3.8.2007, 14:48
pento, а есть функция типа strpos, но без учета регистров?

Автор: Glip 3.8.2007, 14:51
ркгулярные выражения или strtolower() для обеих строк, вероятно могут помочь

Автор: Самозванка 3.8.2007, 14:52
И почему не выполняется даже функция strpos когда false?
Код

$name2 = $_POST['name1'];
for ($i=0, $size=odbc_num_rows($result1); $i<$size; $i++)
{
$f=odbc_fetch_array($result1);
$mystring = $f['stockname'];
$findme   = $name2;
$pos = strpos($mystring, $findme);
if ($pos === false)
 {
echo "Net";

else
 {
echo "DA";
}

Автор: Glip 3.8.2007, 15:05
Цитата(Самозванка @  3.8.2007,  14:52 Найти цитируемый пост)
И почему не выполняется даже функция strpos когда false?

хороший вопрос, при каком false должна выполняться strpos?

Добавлено через 2 минуты и 4 секунды
и для чего в коде  столько вспомогательных переменных, которые используются только один раз?
можно сделать чуть проще
Код

$name2 = $_POST['name1'];
for ($i=0, $size=odbc_num_rows($result1); $i<$size; $i++)
{
$f=odbc_fetch_array($result1);
$mystring = $f['stockname'];

if (strpos($mystring, $name2) === false)
 {
echo "Net";

else
 {
echo "DA";

}

Автор: Самозванка 3.8.2007, 15:09
Этот пример взят отсюда http://www.php.net/manual/en/function.strpos.php

Код

<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Note our use of ===.  Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
if ($pos === false) {
    echo "The string '$findme' was not found in the string '$mystring'";
} else {
    echo "The string '$findme' was found in the string '$mystring'";
    echo " and exists at position $pos";
}
?> 


Но у меня почему то не работает.

Автор: Самозванка 3.8.2007, 15:26
Тут ошибки нет, ошибка была выше в коде, спасибо)

Автор: Fally 3.8.2007, 15:33
Цитата(Самозванка @  3.8.2007,  14:48 Найти цитируемый пост)
а есть функция типа strpos, но без учета регистров?

http://ru2.php.net/manual/en/function.stripos.php

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)