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.
##### contents of a text file #############################
Enregistrement
TI: ... So They Understand ...: Cultural Issues
AU: Schneider,-William
PB: Logan, UT : Utah State UP, 2002. 198 pp.
Enregistrement
TI: La Favilla and Italian Ethnicity in Canada
AU: Gualtieri,-Antonio-Roberto
SOM: Canadian-Ethnic-Studies/Etudes-Ethniques-au-Canada
###################################################
I have the text above in a textfile that I upload:
I want to separate it into two records.
Then I want to parse each line so that each value:
$TI, $AU, $PB and $SOM
equal the contents of the rest of the line, so I can build some SQL.
AU: Gualtieri,-Antonio-Roberto
$AU = "Gualtieri,-Antonio-Roberto";
The problem is that in the end, $sql holds nothing meaningful.
And because I'm filtering from one database type to my own set of
values,
$TI, $AU, $PB and $SOM
MUST become:
$ST, $AU, $BT and $JR
so I refer to this array:
###################################################
###################################################
$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',
)
);
###################################################
###################################################
Here is my code, or what is left of it.
Please help me make sense so I make $sql work.:
###################################################
###################################################
$fh=fopen($_FILES['userfile']['tmp_name'], 'r');
...
$fileContents=fread($fh, filesize($_FILES['userfile']['tmp_name']));
...
$lines=explode("Enregistrement",$fileContents);
foreach($lines as $line) {
$line = stripslashes($line);
$line = str_replace("\r", "", $line);
$newlines=explode("\n",$line);
foreach($newlines as $newline)
{
foreach ($var as $key => $value)
{
# This foreach should parse each record line,
# looking in $var to find the corresponding
# value so that:
# $TI, $AU, $PB and $SOM
# become:
# $ST, $AU, $BT and $JR
if(!$$key){$$key = filter_strings("$key:",$line);}
# breaking each line into two values so that:
# $TI = "So They Understand ..."
# $AU = "Schneider..."
# $BT = "Logan, UT..."
# etc.
#I'm f***ing up in here someplace. What should I put back in?
$sql = "insert into ".$dbtable." (ST,AU,BT,JR) VALUES
('".$ST."','".$AU."','".$BT."','".$JR."');";
}
}#end of foreach($newlines as $newline)
}#end of foreach($lines as $line)
echo $sql;
function filter_strings($tofilter,$line){
if(eregi('^'.$tofilter.'(.*)$',$line,$m)) {
$filtered=$m[1];
return $filtered;
}
}
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php