35 function write_entry($in_handle, $marker, $out_handle){
39 $start = fseek($in_handle, $marker);
40 fwrite($out_handle,
" <project>\n");
41 while(
false != ($line = fgets($in_handle, 1024))){
43 if (preg_match(
'|</project>|', $line)){
44 fwrite($out_handle, $line);
47 fwrite($out_handle, $line);
66 function get_entry($in_handle, $marker){
72 $start = fseek($in_handle, $marker);
73 $project[] =
" <project>\n";
74 while(
false != ($line = fgets($in_handle, 1024))){
76 if (preg_match(
'|</project>|', $line)){
95 function close_tag($handle){
97 $tag =
"</project-listing>\n";
98 fwrite($handle, $tag);
112 function parse_fm_input($fm_string){
114 (
'/([\'|\"])+?/', $fm_string);
118 $acnt = count($parms);
119 for ($ai=0; $ai<=$acnt; $ai++){
120 $len = strlen($parms[$ai]);
125 elseif (!(isset($parms[$ai]))){
129 elseif ((isset($parms[$ai]))){
130 if(ereg(
'^ +', $parms[$ai])){
137 $lparms = array_values($parms);
158 function pdbg($message, $dump=
''){
160 $dbg_msg =
'DBG->' . $message .
"\n";
184 function write_hdr($handle){
187 <?xml version=
"1.0" encoding=
"ISO-8859-1"?>
188 <!DOCTYPE project-listing SYSTEM
"http://freshmeat.net/backend/fm-projects-0.4.dtd">
193 fwrite($handle, $xml_hdr);
210 function write_pxml($file_handle, $pxml){
212 for ($i=0; $i < count($pxml); $i++){
213 fwrite($file_handle, $pxml[$i]);
230 function save_Yupdated($file_handle, $Updata){
232 fwrite($file_handle, $Updata);
249 function xtract($string){
251 $pos = strpos($string,
'>');
252 $val_start = $pos + 1;
253 $val_end = strpos($string,
'</', $val_start);
254 if(!(is_numeric($val_end))){
257 $val_len = $val_end - $val_start;
258 $value = substr($string, $val_start, $val_len);
277 function read_pfile($xml_file) {
288 $meatdoc= simplexml_load_file(
"$xml_file");
289 # echo "read_pfile: Read XML file\n";
291 foreach ($meatdoc->project as $project) {
292 $fmprojs[
"$project->popularity_rank"] [
"$project->projectname_short"] =
293 array (
"$project->url_tgz",
296 "$project->url_homepage",
297 "$project->desc_short"
299 foreach($project->latest_release as $verdata){
301 $fmprojs[
"$project->popularity_rank"] [
"$project->projectname_short"],
302 $verdata->latest_release_version,
303 $verdata->latest_release_id,
304 $verdata->latest_release_date