Full Member
Покинул форум
Сообщений всего: 212
Дата рег-ции: Янв. 2005
Карма 0
|
Привет всем!
Возник сложный вопрос для меня. Имеется .cvs файл, т.е. фактически .txt, в нем на каждой строке записана информация по одному объекту. Структура строки такова, что каждое новое описание объекта отделено от предыдущего запятой без пробелов с какой-либо стороны.
Что требуется. Разбить эти строки, используя разделитель запятую. Пытался сделать:
CODE:$fila = file_get_contents("service.csv");
list ($obj,$id,$type,$date,$money,$cifra,$traff) = split ('[,]', $file);
echo $obj;
Но не выводит список.
Моя итоговая задача такая. Разбитые строчки по переменным вывести при поиске в виде таблички, соотнеся объекту. Искать следует только по объектам, параметры объекта ($id,$type,$date,$money,$cifra,$traff) в поиске не участвуют.
Поисковик у меня уже есть, вот он:
CODE:<meta http-equiv="content-type" content="text/html; charset=Windows-1251">
<form action="<?php echo $_SERVER['PHP_SELF']; echo "?p=find"; ?>" method="POST" name="find">
<input type=text value="<? echo $slovo ?>" size="15" maxlength="68" name="slovo"><br>
<a href="index.php" onclick="document.find.submit(); return false">Поиск >>></a></form><br>
<?php
$slovo = $_POST['slovo'];
if (($act<>null) && ($slovo==null))
{
echo "Пустой запрос";
}
if (preg_match("#[^A-Za-z\-.*]#is",$slovo))
{
echo "Только: <font color=red>a-z</font>, точки и <font color=red>-</font>.</center>";
} else
if ($slovo<>null) {
if ((strlen($slovo)<2) or (strlen($slovo)>67)) {
echo "от двух до 67";
} else {
$out=array();
$slovo = str_replace('*', '\w', $slovo);
$fila = file_get_contents("service.csv");
if (preg_match_all("/\\b(\\S*$slovo\\S*)\\b/i", $fila, $out, PREG_PATTERN_ORDER))
{
echo "<TABLE cellpadding=10 cellspacing=10><tr><td bgcolor=#E8EFF9>";
echo implode('</td></tr><TR><td bgcolor=#E8EFF9>', $out[1]);
echo "</table>";
}
else
{
echo 'ничего не нашел';
}
}
};
?>
Таким образом, помогите, ребят, сопоставить существующий рабочий поисковик и код.
Т.е. надо искать по $obj и выводить как-то:
CODE:echo "<td>$obj</td> <td>$id</td> <td>$type</td> ... ";
Но ничего не перепутать
И первую строку надо каким-то образом не учитывать или затереть сразу (??), можно в принципе посчитать строки и в цикле делать.
Файл большой - около 350 тыс. строк (ага ), но сервер справится, я уже все проверил
Спасибо всем, кто откликнется |