Vraag & Antwoord

Webprogrammeren & scripting

Gegevens uit tekstbestand lezen met explode() lukt niet.

Anoniem
Johnny321
8 antwoorden
  • Na heel veel geploeter van deze PHP-noob heb ik een formuliertje in elkaar gemeubelt waardoor bezoekers een link kunnen toevoegen aan een soort database.
    Nu worden deze links mooi opgeslagen in 'links_db.txt' zoals onderstaand:[code:1:2e3ef721c6]Naam|Email|Url|Omschrijving|Datum|IP|[/code:1:2e3ef721c6]Op elke regel een zoiets. Nu heb ik ff internet rondgesnuffeld; en deze waarden kun je met [code:1:2e3ef721c6]explode()[/code:1:2e3ef721c6] weer opsplitsen in arrays etc.
    Maar heb al poosje lopen kloten; maar krijg het niet voor elkaar om ze dr uit te pleuren. Heeft iemand een tip hoe ik dat het beste kan oplossen; dan kan ik tenminste weer verder met de site :).
  • eerst zal je iets moeten doen als

    $links = file('links.txt');

    dan wordt $links een array met daarin de regels uit het tekstbestand.

    vervolgens
    $links = array_map($links, create_function('$v', "return explode('|', $v);";) );

    nu bestaat elke waarde uit $links weer uit een array, met daarin de regel opgesplitst in bovengenoemde delen:
    [code:1:b6f2662298]
    Array(
    [0] => Array(
    [0] => naam
    [1] => email
    [2] => url
    etc
    )
    [1] => Array(
    [0] => naam2
    [1] => email2
    etc
    )
    )[/code:1:b6f2662298]
    of bedoel je dit niet?
  • Krijg een paar fouten

    [size=9:f5f53d8a04]Parse error: parse error, unexpected ')' in /home/htb/domains/htb.ath.cx/public_html/includes/link_up.inc(47) : runtime-created function on line 1

    Warning: array_map(): The first argument, 'Array', should be either NULL or a valid callback in /home/htb/domains/htb.ath.cx/public_html/includes/link_up.inc on line 47[/size:f5f53d8a04]
  • srry, de argumenten moesten worden omgedraaid:

    $links = array_map(create_function('$v', "return explode('|', $v);";), $links);
  • Kweet et nie; maar krijg nog steeds foutmelding.

    [size=9:866e761077]Parse error: parse error, unexpected ')' in /home/htb/domains/htb.ath.cx/public_html/includes/link_up.inc(47) : runtime-created function on line 1

    Warning: array_map(): The first argument, '', should be either NULL or a valid callback in /home/htb/domains/htb.ath.cx/public_html/includes/link_up.inc on line 47[/size:866e761077]

    http://htb.ath.cx/index.php?inhoud=link_up
  • en line 47 is de regel waar 'mijn' code op staat?
  • yup.
    Alleen als ik [b:615fd1c65b]$v[/b:615fd1c65b] een getal meegeef ervoor; dan krijg ik geen foutmelding; maar krigj ik ook geen uitvoer van de links.
  • Heb ff wat verder doorgesnuffeld; en heb nu een code die ik gedeeltelijk van een site heb getrokken.
    Deze zou moeten werken; maar het werkt natuurlijk niet bij mij :'(

    [code:1:0ad59945b2]$file = fopen($bestand, "r");
    $aantal_regels = count($file);

    for ($i = 0; $i < $aantal_regels ; $i++)
    {
    list ( $naam, $email, $http_url, $omschrijving, $date, $ip, ) = explode ('|', $bestand[$i] ) ;
    echo "<li><a href=\"$http_url\">$omschrijving</a> toegevoegd door <a href=\"mailto:$email\">$naam</a></li>";
    }

    fclose($file);[/code:1:0ad59945b2]
    Er wordt alleen een 'i' weergeven bij $naam. Voor de rest is alles leeg :S

    http://htb.ath.cx/index.php?inhoud=link_up
    database: http://htb.ath.cx/includes/links_db.txt

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.