hi
i have some 500-1000 word essays stored as data type 'text' in a mysql database.
i'm using the following code to generate an ms word-compatible rtf document off
the database
-------snip-------
//generate the headers to help a browser choose the correct application
header( "Content-type: application/msword" );
header( "Content-Disposition: inline, filename=test.rtf");
$date = date( "F d, Y" );
// open our template file
$filename = "mjp_rtf.rtf";
$fp = fopen ( $filename, "r" );
//read our template into a variable
$output = fread( $fp, filesize( $filename ) );
fclose ( $fp );
// replace the place holders in the template with our data
$output = str_replace( "<<userid>>", $userid, $output );
$mjp_essay1=nl2br($mjp_essay1);
$mjp_essay1 = str_replace( "<br />", "\par", $mjp_essay1 );
$output = str_replace( "<<mjp_essay1>>", $mjp_essay1, $output );
$mjp_essay2=nl2br($mjp_essay2);
$mjp_essay2 = str_replace( "<br />", "\par", $mjp_essay2 );
$output = str_replace( "<<mjp_essay2>>", $mjp_essay2, $output );
// send the generated document to the browser
echo $output;@
-------snip-------
this generates an rtf with a single essay printed on it. works fine.
i'd now like to integrate the above code into a while loop that fetches multiple
essays from the mysql db, and prints them out sequentially in a single rtf
document. the following code creates an rtf document with multiple essay
questions off a while loop/query, the problem: there seems to be special ms
word characters (for ex., words formatted with italics or apostrophes are
displayed on the rtf page with extra, weird looking ascii characters - i would copy and paste the characters, but it would look weird depending on your browser. if you open up one of these bad rtf's in a text editor, italics look like '~S', and apostrophes look like '~R').
the code
-------snip-------
header( "Content-type: application/msword" );
header( "Content-Disposition: inline, filename=essays.rtf");
$date = date( "F d, Y" );
//open template file
$filename= "mjp_rtf2.rtf";
$fp=fopen($filename, "r");
//read our template into a variable
$output = fread( $fp, filesize( $filename ) );
fclose ( $fp );
$string = "\page";
//begin while loop to cycle through db
while ($result=mysql_fetch_array($query)){
//Increment the line index by 1
$GET['lineIndex']++;
$GET['rowcount']++;
$userid=$result['userid'];
if (!($conn = $new_admin_class->db_connect()))
return false;
$result2 = mysql_query( "select
from mjp_essay1
where userid =".$userid."");
$row2 =
mysql_fetch_array($result2); //getting info from row in db
$mjp_essay1[$GET['rowcount']] = $row2['mjp_essay1'];
$result2 = mysql_query( "select
from mjp_essay2
where userid =".$userid."");
$row2 =
mysql_fetch_array($result2); //getting info from row in db
$mjp_essay2[$GET['rowcount']] = $row2['mjp_essay2'];
// replace the place holders in the template with our data
$mjp_essay1 = nl2br($mjp_essay1[$GET['rowcount']]);
$mjp_essay1 = str_replace( "<br />", " \par ", $mjp_essay1 );
$mjp_essay2 = nl2br($mjp_essay2[$GET['rowcount']]);
$mjp_essay2 = str_replace( "<br />", " \par ", $mjp_essay2 );
$string=$string." Application Data Form - Userid ".$userid."\par Essay 1 \par
\par \par ".$mjp_essay1." \par \par \par Essay 2 \par \par \par
".$mjp_essay2."\page";
}
$output=str_replace("<<start>>",$string, $output);
// send the generated document to the browser
echo $output;
}
-------snip-------
is based on the first snippet of code. yet the weird ascii characters before
special formatting and apostrophes appears only in the second snippet of code.
am i missing something? any help would be appreciated.
thanks