[PHP] Implode gaat fout

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben een newstracker voor mijn eigen pagina aan het maken waarvoor ik de volgende regel gebruik.
PHP:
1
$file = implode('', @fopen("http://www.tweakers.net/turbotracker.dsp", "r"));
Hierna zou ik uit de $file verschillende waarden moeten kunnen terugvoeren. Helaas, op bovenstaande regel krijg ik een foutmelding: Warning: Bad arguments to implode() in /home/e-smith/files/ibays/nsn/html/start/news_update.php on line 6. Wat doe ik fout?

[ Voor 5% gewijzigd door Verwijderd op 17-06-2003 04:13 . Reden: Typo's ]


Acties:
  • 0 Henk 'm!

Verwijderd

Je wilt hier een implode doen met de file descriptor van een file. Met alleen fopen() wordt er geen bestand ingelezen. Je hebt hiervoor fread (of een andere variant) voor nodig. Ik zou zeggen: zet eerst alles in een string en pas dan een implode toe.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het volgende werkt helaas ook niet:
PHP:
1
2
3
4
5
$filename = "http://www.tweakers.net/turbotracker.dsp";
$handle = @fopen($filename, "r");
$content = @fread($handle, filesize($filename));
fclose($handle);
$file = implode('', $content);

Zelfde foutmelding, maar dan ander regelnummer 8)

Acties:
  • 0 Henk 'm!

  • [ash]
  • Registratie: Februari 2002
  • Laatst online: 05-04 18:06

[ash]

Cookies :9

FF op php.net gekeken, is dit wat ?
gherson (at) snet.net
18-Sep-2000 10:49
code:
1
$file_text = implode('',file("data.htm"));

slurps file data.htm into variable $file_text unchanged (vs the file content). Newlines are all in the right place because newlines were the last char in each array element. That's how file() splits the input.

Acties:
  • 0 Henk 'm!

  • rickmans
  • Registratie: Juli 2001
  • Niet online

rickmans

twittert

ik zou zeggen haal de @ eens weg en bekijk de foutmelding die zich vervolgens voordoet :) (of print $content eens :))

Don't mind Rick


Acties:
  • 0 Henk 'm!

  • WimB
  • Registratie: Juli 2001
  • Laatst online: 30-03-2024
Je kan volgens mij beter met de xml-functies van PHP werken. Ik heb dit ook gedaan, zie hier het resultaat: http://wim.bernaerts.net/tweakers.php

Ik ga niet gans de code van mijn pagina posten, maar dit moet je toch al een heel pak verder helpen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
    $xml_file = "http://www.tweakers.net/turbotracker.dsp"; 
    $curtagname = '';
    
    function startElement($parser, $name, $attrs) {  
        global $curtagname; 
        $curtagname = $name; 
    }  
     
    function endElement($parser, $name) {  
        global $curtagname; 
        $curtagname = ''; 
    }  
     
    function characterData($parser, $data) {  
        global $curtagname;
        if ($curtagname == 'TITEL') print "$data<br>"; 
    }  
     
    $xml_parser = xml_parser_create(); 
    xml_set_element_handler($xml_parser, "startElement", "endElement");  
    xml_set_character_data_handler($xml_parser, "characterData");  
    if (!($fp = fopen($xml_file, "r"))) die("Could not open $xml_file\n"); 
    while ($data = fread($fp, 4096)) {  
        if (!xml_parse($xml_parser, $data, feof($fp))) die("XML-error: %s in line %d"); 
    }  
    xml_parser_free($xml_parser);  
?>  

Acties:
  • 0 Henk 'm!

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 25-10-2022

Banpei

Hachiroku on this touge?

Implode loopt te zeuren dat je er dus geen array in zet, maar een string. Als je em opent met fread staat het niet in een array, maar netjes in een string. Met file zet ie het wel meteen in een array.

Anders kan je natuurlijk ook meteen eerst een explode op "\n" doen. ;)

AE86 gevonden! | So what I thought I'd do was, I'd pretend to be one of those deaf-mutes.

Pagina: 1