Hi, ich habe folgende csv datei:
rubrik,titel,code
TOP10,The Tide Is High,TIDEISHI
TOP10,Asereje/The Ketchup Song,ASEREJE
TOP10,Herz Aus Glas,HERZAUSG
TOP10,Cleaning Out My Closet,CLEANING
TOP10,Complicated,COMPLICA
TOP10,Black Suits Coming (Nod Ya Head),BLACKSUI
TOP10,Mensch,MENSCH
TOP10,Round Round,ROUNDROU
TOP10,Get Over You,GETOVERY
TOP10,Dreamer,DREAMER
NEW,Get Over You,GETOVERY
NEW,Black Suits Coming,BLACKSUI
Diese möchte ich einlesen und als tabelle ausgeben in HTML. Zunächst kein Problem. Zumindest unter Linux Apache. Unter Windows IIS erhalte ich folgendes Ergebnis:
Notice: Undefined offset: 0 in D:\Kunden\o2_php\o2_nokia\global_pages\rt\csv_show_F1.mod.php on line 29
Das Auslesen erfolgt folgender massen:
Ich schreibe in eine Variable $data alle csv daten. Dann nehme ich die variable $filtered und schreibe nur noch alle daten rein, wo die rubrik=TOP10 ist. Das sind die beiden dateien, welche in eine hauptdatei included werden:
datei 1 liest komplettes csv in $data:
dies ist die ausgabe, welche vorher noch nur die rubrik=TOP10 in die variable $filtered schreibt:
Am Bildschirm erfolgt folgendes:
rubrik1-->TOP10
titel1-->The Tide Is High
code1-->TIDEISHI
rubrik2-->TOP10
titel2-->Asereje/The Ketchup Song
code2-->ASEREJE
rubrik3-->TOP10
titel3-->Herz Aus Glas
code3-->HERZAUSG
rubrik4-->TOP10
titel4-->Cleaning Out My Closet
code4-->CLEANING
rubrik5-->TOP10
titel5-->Complicated
code5-->COMPLICA
rubrik6-->TOP10
titel6-->Black Suits Coming (Nod Ya Head)
code6-->BLACKSUI
rubrik7-->TOP10
titel7-->Mensch
code7-->MENSCH
rubrik8-->TOP10
titel8-->Round Round
code8-->ROUNDROU
rubrik9-->TOP10
titel9-->Get Over You
code9-->GETOVERY
rubrik10-->TOP10
titel10-->Dreamer
code10-->DREAMER
rubrik11-->NEW
titel11-->Get Over You
code11-->GETOVERY
rubrik12-->NEW
titel12-->Black Suits Coming
code12-->BLACKSUI
Notice: Undefined offset: 0 in D:\Kunden\o2_php\o2_nokia\global_pages\rt\csv_show_F1.mod.php on line 29
rubrik0-->TOP10
titel0-->The Tide Is High
code0-->TIDEISHI
rubrik1-->TOP10
titel1-->Asereje/The Ketchup Song
code1-->ASEREJE
rubrik2-->TOP10
titel2-->Herz Aus Glas
code2-->HERZAUSG
rubrik3-->TOP10
titel3-->Cleaning Out My Closet
code3-->CLEANING
rubrik4-->TOP10
titel4-->Complicated
code4-->COMPLICA
rubrik5-->TOP10
titel5-->Black Suits Coming (Nod Ya Head)
code5-->BLACKSUI
rubrik6-->TOP10
titel6-->Mensch
code6-->MENSCH
rubrik7-->TOP10
titel7-->Round Round
code7-->ROUNDROU
rubrik8-->TOP10
titel8-->Get Over You
code8-->GETOVERY
rubrik9-->TOP10
titel9-->Dreamer
code9-->DREAMER
Obiger teil ist $data, unterer teil inklusive fehler ist $filtered.
Line 29 ist das script $filtered an der stelle
Ich finde den unterschied zwischen windows IIS und meinem linux system nicht?
Kann mir einer helfen??
rubrik,titel,code
TOP10,The Tide Is High,TIDEISHI
TOP10,Asereje/The Ketchup Song,ASEREJE
TOP10,Herz Aus Glas,HERZAUSG
TOP10,Cleaning Out My Closet,CLEANING
TOP10,Complicated,COMPLICA
TOP10,Black Suits Coming (Nod Ya Head),BLACKSUI
TOP10,Mensch,MENSCH
TOP10,Round Round,ROUNDROU
TOP10,Get Over You,GETOVERY
TOP10,Dreamer,DREAMER
NEW,Get Over You,GETOVERY
NEW,Black Suits Coming,BLACKSUI
Diese möchte ich einlesen und als tabelle ausgeben in HTML. Zunächst kein Problem. Zumindest unter Linux Apache. Unter Windows IIS erhalte ich folgendes Ergebnis:
Notice: Undefined offset: 0 in D:\Kunden\o2_php\o2_nokia\global_pages\rt\csv_show_F1.mod.php on line 29
Das Auslesen erfolgt folgender massen:
Ich schreibe in eine Variable $data alle csv daten. Dann nehme ich die variable $filtered und schreibe nur noch alle daten rein, wo die rubrik=TOP10 ist. Das sind die beiden dateien, welche in eine hauptdatei included werden:
datei 1 liest komplettes csv in $data:
PHP Code:
<?
# NEW MODULE CSV to array
// opens the file at row 1
$row = 1;
$fp = fopen ($MOD_src_path.$MOD_src,"r");
// reading data
$counter = 0;
while ($srccsv = fgetcsv ($fp, 1000, ",")) {
$num = count ($srccsv);
//generating rubrik for e.g. $data[1][rubrik] by reading the first line
if ($counter == 0 ){
for ($c=0; $c < $num; $c++) {
$format[$c] = $srccsv[$c];
//TEST echo $format[$c];
}
}
else {
//generating an array with all data from csv in the structure echo $data[0][rubrik]="sport";
for ($c=0; $c < $num; $c++) {
$data[$counter][$format[$c]] = $srccsv[$c];
//TEST
echo "<br>".$format[$c].$counter."-->".$data[$counter][$format[$c]];
}
}
//TEST echo"format hat:".count($format);
//TEST print_r($format);
// This is the structure which is generated
//$data[x][rubrik] = "....2";
//$data[x][name] = "....2";
//$data[x][code] = "....2";
//$data[x][...] = "....2";
$counter++;
}
fclose ($fp);
//TEST
//print_r($data);
//$test = count($data); echo $test;
global $data;
global $format;
# END MODULE
?>
PHP Code:
<?
# PART1 Filter a special one
// Filter "$search" "$in" of CSV "$data"
$search = "TOP10";
$in = "rubrik";
//$filtered = NULL;
$show_rows = "";
$more = "init.php?settings=klingel_all.inc.php&search=".$search; //link to full data page
/*
function csvFilter($filter) {
global $search, $in;
return ($filter[$in] == $search);
}
//echo "Ergebnis :\n";
$filtered = array_filter($data, 'csvFilter');
//TEST print_r($filtered);
*/
//This is the filter method to be used if php under 4.03 as not supporting array_filter argument
$number = 0;
for ($c=1; $c < count($data); $c++){
if($search == $data[$c][$in]){
for ($b=0; $b < count($format); $b++) { //$ format contains rubrik, name, code, etc.
$filtered[$number][$format[$b]] = $data[$c][$format[$b]];
//extract "$search $in" | $c-1 as first row is CSVstructure
//TEST
echo "<br>".$format[$b].$number."-->".$filtered[$number][$format[$b]];
}
$number++;
}
//TEST echo "Found ".$filtered[$c-1][$in]."<br>";
//TEST elseif($search != $data[$c][$in]){echo "No item found at ".$c." as data is ".$data[$c][$in]."<br>";}
}
//TEST print_r($filtered);
//TEST echo "Size ".count($filtered)."<br>";
//TEST echo"format hat:".count($format);
//TEST print_r($format);
# NEW MODULE View
# View filtered from mod csv_filter.php
echo"<table border=0 width=100% cellspacing=0 cellpadding=2>";
echo "<tr><td colspan=".count($format).">".$search."</td></tr>";
//generating <td>
if ($show_rows == ""){ //checks if you want to show less or all data in filtered
$show_rows = count($filtered);
$show_more = "";
}
else{
$show_more = "<a class=linklist href=\"".$more."\"><img src=\"http://www.o2online.de/images/o2/linklist_arrow_orange.gif\" width=\"9\" height=\"10\" border=\"0\" alt=\"mehr ...\"> weitere</a>";
}
//View different colors for each table row
$colorpar=1; //selection parameter for table row color parameter 1/0
for ($c=0; $c < $show_rows ; $c++) {
//selects the table color
if ($colorpar==0){
echo "<tr bgcolor=#ffffff>\n";
$colorpar=1;
}
else {
echo "<tr bgcolor=#EBF7F7>\n";
$colorpar=0;
}
for ($b=1; $b < count($format); $b++) {
//$ format contains rubrik, name, code, etc. HERE YOU CAN MINIMISE by getting $b started as 1 etc.
if ($b == 2){
echo "<td class=txt>"."<a href=\"".$MOD_src_path.strtolower($MOD_img.$filtered[$c][$format[$b]]).".wav\">"."Play</a></td>\n";
echo "<td class=\"CopyBlue\">".$filtered[$c][$format[$b]]."</td>\n";
}
else {
echo "<td class=\"CopyBlue\">".$filtered[$c][$format[$b]]."</td>\n";
}
}
echo"</tr>";
}
if ($show_more != ""){
echo "<tr><td colspan=".$b.">".$show_more."</td></tr>";
}
echo"</table>";
?>
rubrik1-->TOP10
titel1-->The Tide Is High
code1-->TIDEISHI
rubrik2-->TOP10
titel2-->Asereje/The Ketchup Song
code2-->ASEREJE
rubrik3-->TOP10
titel3-->Herz Aus Glas
code3-->HERZAUSG
rubrik4-->TOP10
titel4-->Cleaning Out My Closet
code4-->CLEANING
rubrik5-->TOP10
titel5-->Complicated
code5-->COMPLICA
rubrik6-->TOP10
titel6-->Black Suits Coming (Nod Ya Head)
code6-->BLACKSUI
rubrik7-->TOP10
titel7-->Mensch
code7-->MENSCH
rubrik8-->TOP10
titel8-->Round Round
code8-->ROUNDROU
rubrik9-->TOP10
titel9-->Get Over You
code9-->GETOVERY
rubrik10-->TOP10
titel10-->Dreamer
code10-->DREAMER
rubrik11-->NEW
titel11-->Get Over You
code11-->GETOVERY
rubrik12-->NEW
titel12-->Black Suits Coming
code12-->BLACKSUI
Notice: Undefined offset: 0 in D:\Kunden\o2_php\o2_nokia\global_pages\rt\csv_show_F1.mod.php on line 29
rubrik0-->TOP10
titel0-->The Tide Is High
code0-->TIDEISHI
rubrik1-->TOP10
titel1-->Asereje/The Ketchup Song
code1-->ASEREJE
rubrik2-->TOP10
titel2-->Herz Aus Glas
code2-->HERZAUSG
rubrik3-->TOP10
titel3-->Cleaning Out My Closet
code3-->CLEANING
rubrik4-->TOP10
titel4-->Complicated
code4-->COMPLICA
rubrik5-->TOP10
titel5-->Black Suits Coming (Nod Ya Head)
code5-->BLACKSUI
rubrik6-->TOP10
titel6-->Mensch
code6-->MENSCH
rubrik7-->TOP10
titel7-->Round Round
code7-->ROUNDROU
rubrik8-->TOP10
titel8-->Get Over You
code8-->GETOVERY
rubrik9-->TOP10
titel9-->Dreamer
code9-->DREAMER
Obiger teil ist $data, unterer teil inklusive fehler ist $filtered.
Line 29 ist das script $filtered an der stelle
if($search == $data[$c][$in]){
Kann mir einer helfen??