mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-17 15:03:25 +00:00
initial import
This commit is contained in:
185
lib/classes/format.class.php
Normal file
185
lib/classes/format.class.php
Normal file
@@ -0,0 +1,185 @@
|
||||
<?php
|
||||
|
||||
class format {
|
||||
|
||||
static public function arr_to_csv_line($arr, $tri_column = false)
|
||||
{
|
||||
$line = array();
|
||||
$tmp = array();
|
||||
foreach ($arr as $v)
|
||||
{
|
||||
if(is_array($v))
|
||||
{
|
||||
$line[] = self::arr_to_csv_line($v);
|
||||
}
|
||||
elseif($tri_column)
|
||||
{
|
||||
|
||||
$key = array_search($v, $arr);
|
||||
unset($arr[$key]);
|
||||
|
||||
if(array_key_exists($key, $tri_column))
|
||||
{
|
||||
$tmp[$key] = $v;
|
||||
}
|
||||
}
|
||||
else
|
||||
$line[] = '"' . str_replace('"', '""', strip_tags($v)) . '"';
|
||||
}
|
||||
if($tri_column)
|
||||
{
|
||||
foreach($tri_column as $key => $value)
|
||||
{
|
||||
foreach($tmp as $k => $v)
|
||||
{
|
||||
if($key == $k)
|
||||
{
|
||||
$line[] = '"' . str_replace('"', '""', strip_tags($v)) . '"';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return implode(",", $line);
|
||||
}
|
||||
|
||||
static public function arr_to_csv($arr, $tri_column = false)
|
||||
{
|
||||
$lines = array();
|
||||
|
||||
if($tri_column)
|
||||
{
|
||||
$title ="";
|
||||
foreach($tri_column as $k => $v)
|
||||
{
|
||||
if(isset($v['title']))
|
||||
$title .= (empty($title) ? "" : ",") . '"' . str_replace('"', '""', strip_tags($v['title'])) . '"';
|
||||
}
|
||||
!empty($title) ? $lines[] = $title : "";
|
||||
}
|
||||
foreach ($arr as $v)
|
||||
{
|
||||
$lines[] = self::arr_to_csv_line($v, $tri_column);
|
||||
}
|
||||
return implode("\n", $lines);
|
||||
}
|
||||
|
||||
static public function wrap_arr_el($arr, $left_str, $right_str)
|
||||
{
|
||||
if( !is_array($arr) && !is_string($left_str) && !is_string($right_str))
|
||||
return false;
|
||||
|
||||
return "$left_str".implode("$right_str $left_str", $arr)."$right_str";
|
||||
}
|
||||
|
||||
static public function arr_to_table_cells($arr)
|
||||
{
|
||||
$line = array();
|
||||
print_r($arr);
|
||||
foreach ($arr as $v)
|
||||
{
|
||||
$line[] = is_array($v) ? self::arr_to_table_cell($v) : $v;
|
||||
}
|
||||
return self::wrap_arr_el($line, "<td>", "</td>");
|
||||
}
|
||||
|
||||
static public function arr_to_table_rows($arr)
|
||||
{
|
||||
$lines = array();
|
||||
foreach ($arr as $v)
|
||||
{
|
||||
$lines[] = self::arr_to_table_cells($v);
|
||||
}
|
||||
return self::wrap_arr_el($line, "<tr>", "</tr>");
|
||||
}
|
||||
|
||||
static public function my_printr($data, $file = false , $line = false)
|
||||
{
|
||||
if($file)
|
||||
echo "file : $file <br />";
|
||||
if($line)
|
||||
echo "line : $line <br />";
|
||||
echo "<pre>";
|
||||
print_r($data);
|
||||
echo "</pre>";
|
||||
}
|
||||
|
||||
static public function my_vdump($data, $file = false , $line = false)
|
||||
{
|
||||
if($file)
|
||||
echo "file : $file <br />";
|
||||
if($line)
|
||||
echo "line : $line <br />";
|
||||
echo "<pre>";
|
||||
var_dump($data);
|
||||
echo "</pre>";
|
||||
}
|
||||
//beurk
|
||||
static public function my_format_printr($data, $file = false, $line = false)
|
||||
{
|
||||
if($file)
|
||||
echo "file : $file <br />";
|
||||
if($line)
|
||||
echo "line : $line <br />";
|
||||
|
||||
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($data));
|
||||
foreach($it as $key => $value)
|
||||
{
|
||||
$d = $it->getDepth();
|
||||
$i = 0;
|
||||
while($i < $d)
|
||||
{
|
||||
echo " ";
|
||||
$i++;
|
||||
}
|
||||
echo "[<b>$key</b>] => $value <br />";
|
||||
}
|
||||
}
|
||||
|
||||
static public function arr_to_xml($arr, $DOM = null, $root = null, $rootname = 'array', $name = 'row')
|
||||
{
|
||||
if($DOM == null)
|
||||
{
|
||||
$DOM = new DOMDocument('1.0', 'UTF-8');
|
||||
$DOM->formatOutput = true;
|
||||
$DOM->preserveWhiteSpace = false;
|
||||
}
|
||||
|
||||
if($root == null)
|
||||
{
|
||||
$root = $DOM->appendChild($DOM->createElement($rootname));
|
||||
}
|
||||
|
||||
foreach($arr as $key => $value)
|
||||
{
|
||||
if(is_int($key) && $name != null)
|
||||
{
|
||||
if(is_array($value))
|
||||
{
|
||||
$subroot = $root->appendChild($DOM->createElement($name));
|
||||
self::arr_to_xml($value, $DOM, $subroot);
|
||||
}
|
||||
elseif(is_scalar($value))
|
||||
{
|
||||
$node = $root->appendChild($DOM->createElement($name));
|
||||
$node->appendChild($DOM->createTextNode($value));
|
||||
}
|
||||
}
|
||||
elseif(is_string($key) && $key != $name)
|
||||
{
|
||||
if(is_array($value))
|
||||
{
|
||||
$subroot = $root->appendChild($DOM->createElement($key));
|
||||
self::arr_to_xml($value, $DOM, $subroot);
|
||||
}
|
||||
elseif(is_scalar($value))
|
||||
{
|
||||
$node = $root->appendChild($DOM->createElement($key));
|
||||
$node->appendChild($DOM->createTextNode($value));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
Reference in New Issue
Block a user