On Wed, 2003-06-11 at 15:55, jtjohnston wrote:
> Can someone see clearly through what I'm trying to do please?
> I've been at this for 4 hours trying to see where I have gone wrong.
[snipped]
Might something like this work?
<?php
error_reporting(E_ALL);
$var = array (
'TI' => array (
'Description' => 'Title: (TI)',
'Option' => 'ST',
),
'AU' => array (
'Description' => 'Author(s): (AU)',
'Option' => 'AU',
),
'PB' => array (
'Description' => 'Publication Information: (PB)',
'Option' => 'BT',
),
'SOM' => array (
'Description' => 'Source (Bibliographic Citation): (SO)',
'Option' => 'JR',
)
);
$filename = 'test_enreg.txt';
$fh = fopen($filename, 'r');
$fileContents = fread($fh, filesize($filename));
$lines = explode("Enregistrement", $fileContents);
$dbtable = 'test_table';
foreach($lines as $line)
{
$line = stripslashes($line);
$line = str_replace("\r", "", $line);
$newlines = explode("\n", $line);
// Init to keep clean--if you really need them as separate scalars,
// try extract()ing $record, although they'll get overwritten on
// each iteration.
$record = array('ST' => '', 'AU' => '', 'BT' => '', 'JR' => '');
$found = false; // Just a flag to avoid empty SQL statements.
foreach($newlines as $newline)
{
if (empty($newline))
{
continue;
}
list($key, $val) = explode(':', $newline);
if (isset($var[$key]['Option']))
{
// Flag that we got one this time round.
$found = true;
// Get the translated name from $var.
$record[$var[$key]['Option']] = trim($val);
}
}#end of foreach($newlines as $newline)
if ($found)
{
$sql = "INSERT INTO $dbtable (ST, AU, BT, JR) VALUES
('{$record['ST']}', '{$record['AU']}', '{$record['BT']}',
'{$record['JR']}')";
echo "$sql\n";
}
}#end of foreach($lines as $line)
?>
--
Torben Wilson <[EMAIL PROTECTED]> +1.604.709.0506
http://www.thebuttlesschaps.com http://www.inflatableeye.com
http://www.hybrid17.com http://www.themainonmain.com
-----==== Boycott Starbucks! http://www.haidabuckscafe.com ====-----
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php