[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Разбор строки
Diakon
Привет всем!
Столкнулся с такой проблеммой. Есть текстовой файл code.txt. В нем лежат данные, напимер такие:
Текст текст текст|
Текст ттекст|
Текст текст текст|
Как видите, конец каждой строки отмечен символом |
Мне надо эти данные занести втаблицу БД. Но возникают проблеммы с разбором строки.
Я написал такой код чтоб в масив $result занносились все даннае при разборе

<? ob_start();
header('Content-type: text/html; charset=UTF-8');
header('Cache-Control: private, no-cache="set-cookie"');
header('Expires: 0');
header('Pragma: no-cache');

$filename = "code.txt";
$fh = fopen($filename, "r") or die("Can't open file!");

$file = fread($fh, 10000);
fclose($fh);

preg_match_all('|<[^>]+>(.*)</[^>]+>|U',$file,$result);
var_dump($result);

?>

Но вот когда смотрю массив, то выводятся такие данные
array(2) { [0]=> array(0) { } [1]=> array(0) { } }
Подскажите в чем ошибка.
Заранее спасибо!



Спустя 11 минут, 39 секунд (27.09.2011 - 10:24) alex12060 написал(а):
preg_match_all('|<[^>]+>(.*)</[^>]+>|U',$file,$result);


Признайтесь, Вы сами это написали или сперли откуда-то?

Спустя 16 минут, 31 секунда (27.09.2011 - 10:41) Diakon написал(а):
Цитата (alex12060 @ 27.09.2011 - 07:24)
preg_match_all('|<[^>]+>(.*)</[^>]+>|U',$file,$result);


Признайтесь, Вы сами это написали или сперли откуда-то?

Ничего я не крал как вы выразились. Единственное что не мое в коде - макет регулярного выражения. Правда я надеился что вы дадите ответ на мой вопрос вместо того чтоб постить в моей теме свои бессмысленные вопросы.
Тем не мение я решил проблемму в таком виде:

<? ob_start();
header('Content-type: text/html; charset=UTF-8');
header('Cache-Control: private, no-cache="set-cookie"');
header('Expires: 0');
header('Pragma: no-cache');

$filename = "code.txt";
$fh = fopen($filename, "r") or die("Can't open file!");

$file = fread($fh, 10000);
fclose($fh);

$regs = split(":: *",$file);
var_dump($regs);

?>


Правда в скрипт парсера пришлось внести изменения и конец строки обозначаю символом :: но не беда. Почему то символ | не хочет обрабатываться.

Спустя 13 минут, 16 секунд (27.09.2011 - 10:54) alex12060 написал(а):
Diakon

Просто этот паттерн совершенно не годен для решения Вашей задачи.
Есть функция такая, explode() называется.


$new = explode('|', $file);
var_dump($new);


Если не сработает, то так:


$new = explode("|\r\n", $file);
// или так
$new = explode("|\n", $file);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.