
07.09.2008, 21:25
|
|
Познающий
Регистрация: 26.09.2007
Сообщений: 35
С нами:
9802902
Репутация:
19
|
|
Народ, новая суровая просьба от меня.
Как пропарсить Xml так, чтобы наименования тэгов были столбиками таблички, а данные в каждом повторяющемся тэге были строчкой таблицы? Ну т.е. представить Xml-данные в виде таблички Html, строчки в которой можно, допустим, покрасить, т.е. работать с ней уже, как с обычной Html-табличкой. Надеюсь, адекватно пояснил.
|
|
|

08.09.2008, 10:28
|
|
Постоянный
Регистрация: 31.07.2002
Сообщений: 312
С нами:
12513535
Репутация:
187
|
|
2DiffuSer
на примере rss античата:
PHP код:
<?php
$s=implode('',file("http://forum.antichat.ru/news.rss"));
$s=strstr($s,"<item>"); //Строка, начиная с которой нужно работать
preg_match_all("/<([a-zA-Z0-9:\"= ]+)>([^<]*)<\/[a-zA-Z0-9:]+>/",$s,$match);
$col=count(array_unique($match[1])); //Количество колонок
echo "<table border=1>";
echo "<tr>";
for($q=0;$q<$col;$q++){ //Выводим
echo "<td>".$match[1][$q]."</td>"; //имена
} //колонок
echo "</tr>";
/////////////////////////////////////Далее выводим данные
for($w=0;$w<(count($match[1])/$col);$w++){
echo "<tr>";
for($q=0;$q<$col;$q++){
echo "<td>".$match[2][$q+$w*$col]."</td>";
}
echo "</tr>";
}
echo "</table>";
?>
правда не выводится одна строка:
Код:
<content:encoded><
08.09.2008, 15:04
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
С нами:
10018169
Репутация:
1680
|
|
Народ, подскажите плииз, как мне заархивировать на php папку (в .rar .gz это не важно), чтобы с максимальным сжатием и рядом с папкой, то есть путь указать какую папку, и полный путь куда именно сохранять на хосте.
Пробовал кучу вариантов, не пашет ;(
Линукс, и хост агава.
|
|
|

08.09.2008, 15:48
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.05.2008
Сообщений: 756
С нами:
9456866
Репутация:
979
|
|
почитай тут
http://www.php.su/functions/?cat=zlib
делается при помощи zlib
вот ещё есть клаc для zip
http://www.phpclasses.org/browse/package/2322.html
Последний раз редактировалось rushter; 08.09.2008 в 19:54..
|
|
|

08.09.2008, 16:58
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
С нами:
10018169
Репутация:
1680
|
|
И нафига мне модуль?
|
|
|

08.09.2008, 17:48
|
|
Флудер
Регистрация: 12.08.2004
Сообщений: 3,791
С нами:
11444066
Репутация:
2290
|
|
А нафига тогда спрашиваешь?
|
|
|

08.09.2008, 17:53
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
С нами:
10018169
Репутация:
1680
|
|
Сообщение от nerezus
А нафига тогда спрашиваешь?
Я спросил вопрос по php, а не про модули.
Какой командой можно заархивировать папку.
|
|
|

08.09.2008, 18:48
|
|
Постоянный
Регистрация: 24.05.2008
Сообщений: 589
С нами:
9454841
Репутация:
504
|
|
Если сервер под управлением Linux, то можно попробовать следующим образом
system('tar -cvvf foo.tar ./foo/');
Где ./foo/ - архивируемая папка, а foo.tar - имя тарбала. Потом можно запаковать тарбал либо gzip'ом, либо bzip2.
И в зависимости от того, что разрешено на сервере, менять system().
Последний раз редактировалось gisTy; 08.09.2008 в 18:54..
|
|
|

08.09.2008, 18:58
|
|
Познающий
Регистрация: 10.04.2008
Сообщений: 51
С нами:
9518788
Репутация:
0
|
|
PHP код:
<?php
//Данные
$host = "localhost"; // Хост
$user = "root"; //Имя пользователя MySQL
$pass = "pass"; // Пароль пользователя MySQL
$db= "test";
//mysql connect
$mysqlconnect = @mysql_connect($host,$user,$pass);
if (!$mysqlconnect)
{
die("<font color=\"red\">Ошибка MySQL-сервера!</font>");
}
#==========================================================
mysql_select_db($db,$mysqlconnect);
$result = mysql_query("SELECT name FROM pages");
$num_rows = mysql_num_rows($result);
$num_names = mysql_fetch_array($result, MYSQL_NUM);
#==========================================================
$a=0;
while($a<$num_rows)
{
$a=$a+1;
echo $num_names['$a'].'<br>';
}
?>
Не получается выводить из строки name имена по очереди , уже запутался  Заранее спасибо.
|
|
|

08.09.2008, 19:01
|
|
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
С нами:
11058146
Репутация:
4536
|
|
господи, держит же свет извращенцев =)
PHP код:
$num_names = mysql_fetch_array($result, MYSQL_NUM);
#================================================= =========
while($num_names = mysql_fetch_array($result, MYSQL_NUM)){
echo $num_names[0];
}
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|