1
XMLファイルを読み込み、解析しようとしています。私は私が関心のある名前で配列を定義した設定ファイルを持っているので、ファイルをロードした後、私の定義済みの配列とタグを比較し、値が一致すれば配列のインデックスとしてタグ(名前) 。問題は、常にconfig配列内の最初の名前のタグをスキップしていることです。また、いくつかのエラーチェックが良いコードであることを除いて、LoadCsvReport
は動作するはずですか?私はOOPを学んでいますが、私はそれを使わないと思います。XMLファイルを解析すると、1つのタグがスキップされる
class LoadAdReport extends CI_Controller
{
/*
* @return array[][]
* */
public function LoadCsvReport()
{
require "config.php";
$key = array();
$values = array();
$flag = false;
$csvfile = fopen(dirname(__FILE__) . "/result.csv", "r");
while ($file = fgetcsv($csvfile)) {
if (!$flag) {
/*Loop through config array which contains names of columns of our interest
If row from file contains name from config, then that name will have assigned
index of that column
*/
foreach ($bing as $name)
if ($value = array_search($name, $file)) {
$key[$name] = $value;
$flag = true;
}
//After column indexes are assigned to names skip current row
if ($flag)
continue;
}
if ($flag) {
foreach ($key as $columnName => $index) {
/*Get columnname and index, items from $file[$index] are assign to array
corresponding array with columnName as index
*/
if ($file[$index] === "-")
break;
$values[$columnName][] = $file[$index];
//$key[$index] = array($item => $file[$item]);
}
}
}
foreach ($values as $key => $val)
foreach ($val as $lol => $item)
echo $key . "=>" . $item . "<br/>";
fclose($csvfile);
}
public function LoadXmlReport()
{
require "config.php";
$items = array();
$xmlfile = simplexml_load_file(dirname(__FILE__) . "/xmlfile.xml");
foreach ($xmlfile as $key => $value)
foreach ($value as $key => $item) {
if ($item == "-") {
break;
} elseif (array_search($key, $bing))
$items[$key][] = $item;
}
foreach ($items as $key => $val)
foreach ($val as $lol => $item)
echo $key . "=>" . $item . "<br/>";
}
}
これは
<root>
<row>
<Status>Enabled</Status>
<Keyword>Toaletna voda</Keyword>
<Campaign>Lešenari</Campaign>
<Adgroup>Lešenaris</Adgroup>
<BidStrategyType>InheritFromParent</BidStrategyType>
<Bid>0.05</Bid>
<Matchtype>Broad</Matchtype>
<Clicks>0</Clicks>
<Impr.>0</Impr.>
<Conv.>0</Conv.>
</row>
<row>
<Status>Enabled</Status>
<Keyword>lyžička</Keyword>
<Campaign>Lešenari</Campaign>
<Adgroup>Lešenaris</Adgroup>
<BidStrategyType>InheritFromParent</BidStrategyType>
<Bid>0.05</Bid>
<Matchtype>Broad</Matchtype>
<Clicks>0</Clicks>
<Impr.>0</Impr.>
<Conv.>0</Conv.>
</row>
<row>
<Status>Search total</Status>
<Keyword>-</Keyword>
<Campaign>-</Campaign>
<Adgroup>-</Adgroup>
<BidStrategyType>-</BidStrategyType>
<Bid>-</Bid>
<Matchtype>-</Matchtype>
<Clicks>0</Clicks>
<Impr.>0</Impr.>
<Conv.>0</Conv.>
</row>
<row>
<Status>Content total</Status>
<Keyword>-</Keyword>
<Campaign>-</Campaign>
<Adgroup>-</Adgroup>
<BidStrategyType>-</BidStrategyType>
<Bid>-</Bid>
<Matchtype>-</Matchtype>
<Clicks>0</Clicks>
<Impr.>0</Impr.>
<Conv.>0</Conv.>
</row>
<row>
<Status>Deleted items total</Status>
<Keyword>-</Keyword>
<Campaign>-</Campaign>
<Adgroup>-</Adgroup>
<BidStrategyType>-</BidStrategyType>
<Bid>-</Bid>
<Matchtype>-</Matchtype>
<Clicks>0</Clicks>
<Impr.>0</Impr.>
<Conv.>0</Conv.>
</row>
<row>
<Status>Overall total</Status>
<Keyword>-</Keyword>
<Campaign>-</Campaign>
<Adgroup>-</Adgroup>
<BidStrategyType>-</BidStrategyType>
<Bid>-</Bid>
<Matchtype>-</Matchtype>
<Clicks>0</Clicks>
<Impr.>0</Impr.>
<Conv.>0</Conv.>
</row>
</root>
私のXMLファイルであり、これは私の設定ファイルである
$bing = array(
"Adgroup",
"Campaign",
"Keyword",
"Clicks",
"Impr.",
"Conv.",
"Bid",
);
うん、助けてくれてありがとう:) – rtom