Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Проблема с парсером csv

Сообщения:  [1-5] 

 
 автор: mihdan   (01.02.2008 в 10:46)   письмо автору
 
   для: h00w   (31.01.2008 в 23:11)
 

Думаю вас бы заинтересовало

   
 
 автор: divbyzero   (01.02.2008 в 01:04)   письмо автору
 
   для: h00w   (01.02.2008 в 00:52)
 

Незачто. Удачи.
Я же предупредил, что не проверял. просто за синтаксисом не уследишь в блокноте без подсветки.
Думаю тут важна была идея!

   
 
 автор: h00w   (01.02.2008 в 00:52)   письмо автору
 
   для: divbyzero   (01.02.2008 в 00:35)
 

О, огромное спасибо, как я сразу не додумался так сделать, но ничего, на ошибках учатся. Еще раз спасибо ;]

P.S Видимо Вы немного торопились, когда писали этот участок кода, оттого в него вкралось пара помарок. Вот исправленная версия, если кому понадобится в будущем:

$string = \"1;bbbbbbbbbbbbbbb;111-2222222-33;131.26;+
2;bbbbbbbbbbbbbbb;111-2222222-33;133.25;+
3;bbbbbbbbbbbbbbb;111-2222222-33;133.25;+
4;bbbbbbbbbbbbbbb;111-2222222-33;133.25;+
5;bbbbbbbbbbbbbbb;111-2222222-33;133.25;+\";
//Сначала разбить все построчно:
$data = explode(chr(13), $string );// chr(13) = код переноса
//Это позволит пройтись по массиву в цикле:

foreach ($data  as $value) {
$info = explode(\';\', $value); // разбиваем на части
echo \"<br>->> NUM: \".$info[0].\" GOODS: \".$info[1].\" SN: \".$info[2].\" PRICE: \".$info[3].\" PLUS: \".$info[4].\"<br>\";  
}

   
 
 автор: divbyzero   (01.02.2008 в 00:35)   письмо автору
 
   для: h00w   (31.01.2008 в 23:11)
 

Думаю стоит сделать проще:

<?
$string 
"1;bbbbbbbbbbbbbbb;111-2222222-33;131.26;+
2;bbbbbbbbbbbbbbb;111-2222222-33;131.26;+"
;
//Сначала разбить все построчно:
$data explode('chr(13)'$string );// chr(13) = код переноса
//Это позволит пройтись по массиву в цикле:

foreach ($data  => $value) {
$info explode(';',); // разбиваем на части
echo "<br>->> NUM: ".$info[0]." GOODS: ".$info[1]." SN: ".$info[2]." PRICE: ".$info[3]." PLUS: ".$info[4]."<br>";  
}
?>

Не проверял, ну думаю работать должно.
Удачи.

   
 
 автор: h00w   (31.01.2008 в 23:11)   письмо автору
 
 

Доброго времени суток всем ;)
Решил написать парсер *.csv файлов для своего мини-магазина, но вот никак не пойму, как правильно сделать так, чтобы после разбиения массива парсер автоматом находил 4 поля (номер, название товара, серийный номер, цена), как не пробовал - все равно все перемешывается и стоит не на своих местах. Может кто помочь с этим?_)

P.S Я думаю, что неправильно юзаю функцию strtok, не в этом ли дело?

<?
include "config.php";

$string "
1;bbbbbbbbbbbbbbb;111-2222222-33;131.26;+
2;bbbbbbbbbbbbbbb;111-2222222-33;131.26;+
3;bbbbbbbbbbbbbbb;111-2222222-33;32113.30;+
4;bbbbbbbbbbbbbbb;111-2222222-33;40500.00;+
5;bbbbbbbbbbbbbbb;111-2222222-33;44502.85;+
6;bbbbbbbbbbbbbbb;111-2222222-33;40942.63;-
7;bbbbbbbbbbbbbbb;111-2222222-33;+
8;bbbbbbbbbbbbbbb;111-2222222-33;-
9;bbbbbbbbbbbbbbb;111-2222222-33;+
10;bbbbbbbbbbbbbbb;111-2222222-33;-
11;bbbbbbbbbbbbbbb;111-2222222-33;6.50;+
12;bbbbbbbbbbbbbbb;111-2222222-33;26.89;+
13;bbbbbbbbbbbbbbb;111-2222222-33;15.34;+
14;bbbbbbbbbbbbbbb;111-2222222-33;+
15;bbbbbbbbbbbbbbb;111-2222222-33;12.77;+
"
;

$string str_replace("+"""$string);

$tok strtok($string"\n");
while (
$tok) {
     
$tok strtok(";");
$strtmp[] = $tok;
}

foreach(
$strtmp as $value)
{
$number strtok($value";");
$name strtok("");
$serialnumber strtok(";");
$cost strtok(";");
$plus_minus strtok(";");

echo 
"<br>->> NUM: ".$number." GOODS: ".$goods." SN: ".$sn." PRICE: ".$price." PLUS: ".$plus."<br>";

# Далее будет запрос на вставку в БД
# ...
}
?>

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования