
28.01.2010, 16:19
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
С нами:
9213376
Репутация:
278
|
|
Сообщение от Fuckel
а если строка "123 123 111222 312"? твой вариант не будет работать
для чего трим?
--
обходи циклом, проверяй регуляркой обрамив нужное слово \b
пример из документации
PHP код:
<?php
/* The \b in the pattern indicates a word boundary, so only the distinct
* word "web" is matched, and not a word partial like "webbing" or "cobweb" */
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
if (preg_match("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
?>
Твой вариант не верен, т.к. в строке могут быть лишние символы.
Мой вариант правильный, в данной ситуации.
Трим, т.к. строки в файле бывают с ненужными пробелами по бокам записаны, трим для перестраховки
|
|
|

28.01.2010, 23:20
|
|
Познающий
Регистрация: 25.10.2009
Сообщений: 54
С нами:
8707616
Репутация:
9
|
|
Сообщение от svesve
Как можно найти в файле требуемое слово(полностью)??
Пример:
файл -
111222
7111222
1112223
нужно узнать есть ли в нем строка 111222 ?? и чтобы он 7111222 и 1112223 не под наш поиск.
тобишь нужен поиск слова целиком.
Вот например у тебя
npimer.txt,а в нём:
7111222
111222
Надо найти 111222 или проверить - есть ли она вообще?
Вот код:
PHP код:
$ischem="111222";
$TBoi_fail = "npimer.txt";
$massiv = @file($TBoi_fail);
$lines = count($massiv);
for ( $i = 0; $i <= $lines; $i++ ){
list($chislo,$chislo2)=explode(' ', $massiv[$i]);
if($ischem==$chislo){ Exit("Найдено совпадение!<BR>Искали:$ischem<BR>Найдено:$chislo }
if($i==$lines){ die("Совпадений нет!"); }
}
В данном случае появится:
Найдено совпадение!
Искали:111222
Найдено:111222
|
|
|

28.01.2010, 15:45
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
С нами:
9213376
Репутация:
278
|
|
svesve : Как можно найти в файле требуемое слово( полностью)??
PHP код:
$file = file('file.txt');
$fstr = ""; // кого найти?
if(in_array($fstr, array_map('trim', $file)) die('Строка найдена');
|
|
|

28.01.2010, 16:58
|
|
Участник форума
Регистрация: 17.01.2008
Сообщений: 170
С нами:
9640431
Репутация:
105
|
|
почему мой вариант не верен?
|
|
|

28.01.2010, 18:06
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
С нами:
9213376
Репутация:
278
|
|
Сообщение от Fuckel
почему мой вариант не верен?
Твой вариант не верен, т.к. в строке могут быть лишние символы.
svesve просит, чтобы совпадала полностью строка, а не чтобы это слово было частью строки
|
|
|

28.01.2010, 18:10
|
|
Участник форума
Регистрация: 17.01.2008
Сообщений: 170
С нами:
9640431
Репутация:
105
|
|
ты делаешь трим, удаляешь лишние пробелы, пробелы тоже символы )
|
|
|

28.01.2010, 18:13
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
С нами:
9213376
Репутация:
278
|
|
Сообщение от Fuckel
ты делаешь трим, удаляешь лишние пробелы, пробелы тоже символы )
лол
|
|
|

28.01.2010, 18:14
|
|
Участник форума
Регистрация: 21.02.2008
Сообщений: 255
С нами:
9589849
Репутация:
177
|
|
Сообщение от Fuckel
ты делаешь трим, удаляешь лишние пробелы, пробелы тоже символы )
перенос строки и возват каретки тоже символы. нуждающийся наверняка имел ввиду непечатные символы
|
|
|

28.01.2010, 23:07
|
|
Познающий
Регистрация: 25.10.2009
Сообщений: 54
С нами:
8707616
Репутация:
9
|
|
PHP
Народ,как сделать вывод текста из бд по рейтингу..
Да вообще --- как сделать этот рейтинг?
Вот я сделал страницу,на ней всё есть(рега\вход\выход\куки)
при регистрации создаётся файл с новым именем(именем юзера), а вообще --- пишется файл,типа :
all.dat
в нём:
Имя|0
Имя|1
Имя|2
Ну вот,а надо сделать что-то типа:
Имя|0|Рейтинг:80%
Имя|1|Рейтинг:10%
Имя|2|Рейтинг:10%
А если регнется новый,то:
Имя|0|Рейтинг:70%
Имя|1|Рейтинг:10%
Имя|2|Рейтинг:10%
Имя|3|Рейтинг:10%
А если кто-то повысит рейтинг,то,например,так:
Имя|0|Рейтинг:50%
Имя|1|Рейтинг:20%
Имя|2|Рейтинг:20%
Имя|3|Рейтинг:10%
И самое главное:
Вывод инфы:
Допустим файл содержит:
Имя|4|Рейтинг:50%
Имя|1|Рейтинг:20%
Имя|2|Рейтинг:20%
Имя|3|Рейтинг:10%
Тогда вывод:
Имя|4|Рейтинг:50%
Имя|1|Рейтинг:20%
Имя|2|Рейтинг:20%
Имя|3|Рейтинг:10% --- не активен,модератор удали его!
Вопрос: как это организовать?
Если надо --- выложу скрипт...
|
|
|

28.01.2010, 23:40
|
|
Участник форума
Регистрация: 17.01.2008
Сообщений: 170
С нами:
9640431
Репутация:
105
|
|
Сообщение от N2kroot
Народ,как сделать вывод текста из бд по рейтингу..
Да вообще --- как сделать этот рейтинг?
Вот я сделал страницу,на ней всё есть(рега\вход\выход\куки)
при регистрации создаётся файл с новым именем(именем юзера), а вообще --- пишется файл,типа :
all.dat
в нём:
Имя|0
Имя|1
Имя|2
Ну вот,а надо сделать что-то типа:
Имя|0|Рейтинг:80%
Имя|1|Рейтинг:10%
Имя|2|Рейтинг:10%
А если регнется новый,то:
Имя|0|Рейтинг:70%
Имя|1|Рейтинг:10%
Имя|2|Рейтинг:10%
Имя|3|Рейтинг:10%
А если кто-то повысит рейтинг,то,например,так:
Имя|0|Рейтинг:50%
Имя|1|Рейтинг:20%
Имя|2|Рейтинг:20%
Имя|3|Рейтинг:10%
И самое главное:
Вывод инфы:
Допустим файл содержит:
Имя|4|Рейтинг:50%
Имя|1|Рейтинг:20%
Имя|2|Рейтинг:20%
Имя|3|Рейтинг:10%
Тогда вывод:
Имя|4|Рейтинг:50%
Имя|1|Рейтинг:20%
Имя|2|Рейтинг:20%
Имя|3|Рейтинг:10% --- не активен,модератор удали его!
Вопрос: как это организовать?
Если надо --- выложу скрипт...
сортировка, например, такая:
PHP код:
<?php
$f = file("users.dat");
$users = Array();
for ($i=0; $i<count($f); $i++)
{
$users[] = explode('|', $f[$i]);
settype($users[$i][2], int);
}
function cmp($a, $b)
{
if ($a[2] == $b[2]) {
return 0;
}
return ($a[2] < $b[2]) ? -1 : 1;
}
usort($users, "cmp");
print_r($users);
?>
файл users.dat
Код:
a|0|1
aa|12|100
bvn|42|3
рейтинг - третий элемент, то есть это будут 1, 100 и 3
Последний раз редактировалось Fuckel; 28.01.2010 в 23:42..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|