|
Тема
|
Pattern Matching
|
|
Автор |
phpstat (непознат
) |
Публикувано | 20.12.07 19:29 |
|
Здравейте!
Трябва ми помо6т за следният проблем:
Имам един TSV Фаил с йерархи4на структура (5 Нива Tree) и искам да екстрахирам структурате с PHP и да го сложа в XML и MySQL.
---------------------------------
Level1 folder date
Level2 folder date
Filename file date
Lelel3 folder date
Filename file date
----------------------------------
Вси4ко по4ва на нов ред и всяко по-долно ниво е с 4 разстояния по навътре.
Думите на всеки ред са разделени с Табулатор.
Пробвам с PREG_MATCH_ALL ама не става.
$r="/^\s{0}(\w+.*?)\t(\w+.*?)\t(\w+.*?)\s{4}(\w+.*?)/sim";
preg_match_all($r,$text,$level);
var_dump($level);
Как мога да сложа вси4ко в Multidimensional Arrays и после директно в XML като се запази структурата?
Благодаря предватително за всякаква помо6т!
| |
|
Какво означава следното:
Вси4ко по4ва на нов ред и всяко по-долно ниво е с 4 разстояния по навътре.
Най-добре напиши малко примерно съдържание на файл (с \t, и \n, за да не стават грешки)
p.s. Пробвай това
<?php
function array_transform($array)
{
foreach($array as $key => $value)
{
if(!is_array($value))
{
$inc_xml .= "<$key>$value</$key>";
}
else
{
$inc_xml .= "<$key>";
$inc_xml .= array_transform($value);
$inc_xml .= "</$key>";
}
}
return $inc_xml;
}
$lines = file('res.tsv');
foreach ($lines as $line)
{
$tmp_array = explode("\t", $line);
$multi_array[$tmp_array[0]][$tmp_array[1]][$tmp_array[2]][$tmp_array[3]] = $tmp_array[4];
}
$xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><root>".array_transform($multi_array)."</root>";
echo $xml;
?>
<P ID="edit"><FONT class="small"><EM>Редактирано от anastasd на 21.12.07 19:51.</EM></FONT></P>Редактирано от anastasd на 21.12.07 19:53.
| |
|
|
|
|