Met "echo" zie ik het wel maar bij $test niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Andreas Krale

Andreas Krale

04/02/2016 15:41:57
Quote Anchor link
Heb nog een klein probleempje

Om de gegevens uit mijn microcontroller te halen gebruik ik een script om de bestanden in te pakken en het dan gelijk kan downloaden dat werkt prima
Nu wil ik graag het zip bestand voorzien van datum en naam, met datum lukt mij maar omdat ik de naam voor het bestand uit een text file moet halen lukt het mij op een of andere manier niet
Met dit krijg ik op mijn site netjes de naam te zien.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php $regels = file('info.txt');
echo substr($regels[1], 0, 20)."<br/>";
?>


Als ik het volgende doe.. krijg ik geen zip file met de naam
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$regels
= file('info.txt');
$name= ($regels[1], 0, 20);
?>

Zie niet wat er verkeerd is omdat de naam er wel staat.

Dit script gebruik ik voor zippen en download.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
29
30
31
32
33
<?php
$dtime
= date("d-m-Y");
$regels = file('info.txt');
$name= ($regels[1], 0, 20);// hier staat de naam "pomp1"
# define file array

$files = array('logbuch.txt');

# create new zip opbject
$zip = new ZipArchive();

# create a temp file & open it
$tmp_file = tempnam('.','');
$zip->open($tmp_file, ZipArchive::CREATE);

# loop through each file
foreach($files as $file){

    # download file
    $download_file = file_get_contents($file);

    #add it to the zip
    $zip->addFromString(basename($file),$download_file);

}


# close zip
$zip->close();

# send the file to the browser as a download
header('Content-disposition: attachment; filename='.$dtime.zip);
header('Content-type: application/zip');
readfile($tmp_file);
?>
Gewijzigd op 04/02/2016 15:42:57 door Andreas Krale
 
PHP hulp

PHP hulp

14/11/2024 04:37:39
 
Ozzie PHP

Ozzie PHP

04/02/2016 15:49:11
Quote Anchor link
Je doet toch ook 2x iets totaal verschillends?

In het eerste codeblokje 'echo' je iets. In het 2e codeblokje vergeet je 'substr' en 'echo'.
 
- Ariën  -
Beheerder

- Ariën -

04/02/2016 15:49:46
Quote Anchor link
Je mist je substr()-functie.
 
Andreas Krale

Andreas Krale

04/02/2016 16:02:23
Quote Anchor link
Verrek helemaal niet gezien.

Hen dit aan gepast en gekeken of ik nu de zip file met de naam krijg, helaas niet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
29
30
31
32
33
<?php
$dtime
= date("d-m-Y");
$regels = file('info.txt');
$name= substr($regels[1], 0, 20);// hier staat de naam "pomp1"
# define file array

$files = array('logbuch.txt');

# create new zip opbject
$zip = new ZipArchive();

# create a temp file & open it
$tmp_file = tempnam('.','');
$zip->open($tmp_file, ZipArchive::CREATE);

# loop through each file
foreach($files as $file){

    # download file
    $download_file = file_get_contents($file);

    #add it to the zip
    $zip->addFromString(basename($file),$download_file);

}


# close zip
$zip->close();

# send the file to the browser as a download
header('Content-disposition: attachment; filename='.$name.zip);
header('Content-type: application/zip');
readfile($tmp_file);
?>

Afbeelding
Gewijzigd op 04/02/2016 18:01:20 door Andreas Krale
 
- Ariën  -
Beheerder

- Ariën -

04/02/2016 16:12:06
Quote Anchor link
zip hoort op lijn 30 tussen quotes.
 
Andreas Krale

Andreas Krale

04/02/2016 16:27:11
Quote Anchor link
Met de $dtime gaat het inderdaad beter maar met $name krijg ik nog steeds de zip naam van de pagina "logzip.php" zoals op de screenshot in de eerdere post.
 
- Ariën  -
Beheerder

- Ariën -

04/02/2016 16:36:01
Quote Anchor link
Hoe zien je header()'s er nu uit? En kan je je screenshot ook openbaar zetten? Of uploaden bij bijv. Tinypic.com?
 
Andreas Krale

Andreas Krale

04/02/2016 18:23:43
Quote Anchor link
- Ariën - op 04/02/2016 16:36:01:
Hoe zien je header()'s er nu uit?


Deze vraag snap ik even niet

Screenshot is geupload.
 
- Ariën  -
Beheerder

- Ariën -

04/02/2016 18:54:52
Quote Anchor link
De header()' s staan in je code, onderaan.
 
Andreas Krale

Andreas Krale

04/02/2016 19:26:17
Quote Anchor link
Ik denk dat ik eerst even wat anders moet verzinnen ik kan namelijk niet met mijn tablet downloaden met dit script.
Had al wel met de scherm grote rekening gehouden maar dus niet met een zip download.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
# close zip
$zip->close();
# send the file to the browser as a download
header('Content-disposition: attachment; filename='.$name.".zip");
header('Content-type: application/zip');
readfile($tmp_file);
?>

 
- Ariën  -
Beheerder

- Ariën -

05/02/2016 00:01:02
Quote Anchor link
Ik snap je niet echt?
 
Andreas Krale

Andreas Krale

05/02/2016 08:10:15
Quote Anchor link
Dat kan ik mij heel goed voorstellen, mijn excuus voor de verwarring.

Waar ik mee bezig ben is een home project met een microcontroller die tevens door in dit geval kan worden uitgelezen en gedeeltelijk worden bestuurd door een tablet.
Dus ik maak het scherm zo groot dat het beeld vullend is op een tablet, dit is allemaal klaar.
Nu terug kommen op het zippen en downloaden gisterenavond heb is dus alles voor het eerst op de SD-kaart van de microcontroller gezet en alles ging goed kan bijna alles doen wat ik graag wil.
Toe ik het zippen en downloaden wilde gaan doen ging het verkeerd maar om een lang verhaal kort te maken het bleek dus dat ik er een hoofdletter had staan wat niet moest en daar keek ik steeds overheen maar dat is nu opgelost en dat werkt ook.

Maar wat ik nog steeds niet voor elkaar heb is de naam en datum voor het zip bestand.

Toevoeging op 05/02/2016 09:21:58:

Ben zelf ook een stukje verder gekomen, heb er een "$fopen" op het bestand te open en te lezen ingebouwd

Het stomste is nu dat de 2e letter van "info.txt" als naam word genomen hoe die daar aankomt "geen idee" maar de zip file krijgt dus de naam "n.zip"

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
29
30
31
32
33
<?php
$dtime
= date("d-m-Y");
// ik geef het liefst eerst een variabele aan waarin het bestand staat:
$file = "info.txt";
// open het bestand met 'r' (read)
$fopen = fopen($file, "r");
//lees naam uit "pomp1"
$name= substr($file[1], 0, 20);
// sluit het bestand weer af
fclose($fopen);
//lees naam uit "pomp1"

# define file array

$files = array('logbuch.txt');
# create new zip opbject
$zip = new ZipArchive();
# create a temp file & open it
$tmp_file = tempnam('.','');
$zip->open($tmp_file, ZipArchive::CREATE);
# loop through each file
foreach($files as $file){
# download file
$download_file = file_get_contents($file);
#add it to the zip
$zip->addFromString(basename($file),$download_file);
}

# close zip
$zip->close();
# send the file to the browser as a download
header('Content-disposition: attachment; filename='.$name.".zip");
header('Content-type: application/zip');
readfile($tmp_file);
?>


Afbeelding
 
- Ariën  -
Beheerder

- Ariën -

05/02/2016 09:26:55
Quote Anchor link
$file bevat nu een string, en geen array van de file()-functie, die elke regel in een element van een array zet.
 
Andreas Krale

Andreas Krale

05/02/2016 10:11:26
Quote Anchor link
Heb nu de regel in het element array gezet.

Nu krijg ik ".zip" als zip bestands-naam terwijl nu de 2e regel met de naam "pomp1" zou moeten lezen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
$dtime = date("d-m-Y");
// ik geef het liefst eerst een variabele aan waarin het bestand staat:
$file = array('info.txt');
// open het bestand met 'r' (read)
$fopen = fopen($file, "r");
//lees naam uit "pomp1"
$name= substr($file[1], 0, 20);
// sluit het bestand weer af
fclose($fopen);
 
Willem vp

Willem vp

05/02/2016 10:25:45
Quote Anchor link
Het eerste element van een array is niet [1], maar [0]...
 
Andreas Krale

Andreas Krale

05/02/2016 11:04:03
Quote Anchor link
Klopt Willem, Maar de naam die ik moet hebben staat op de 2e regel.
 
- Ariën  -
Beheerder

- Ariën -

05/02/2016 11:25:57
Quote Anchor link
Waarom gebruik je dan niet file()? Die haalt alles uit een tekst bestand op, plaatst elke regel in een element van een array.

Dat is wat je precies wilt!
 
Andreas Krale

Andreas Krale

05/02/2016 11:38:17
Quote Anchor link
Zie ik nu iets over het hoofd????
Ik gebruik toch "file"
 
- Ariën  -
Beheerder

- Ariën -

05/02/2016 11:44:54
Quote Anchor link
Maar niet als functie, in de laatste code.
 
Randy vsf

Randy vsf

05/02/2016 12:28:21
Quote Anchor link
Andreas Krale op 05/02/2016 11:04:03:
Klopt Willem, Maar de naam die ik moet hebben staat op de 2e regel.


lol, $file is een array met 1 element. Dus $file[1] bestaat niet.
Dan probeer je een file te openen met fopen met een array als input.

Misschien moet je eens wat documentatie gaan lezen, zodat je weet wat deze functies doen...
Gewijzigd op 05/02/2016 12:28:44 door Randy vsf
 
Andreas Krale

Andreas Krale

05/02/2016 12:36:17
Quote Anchor link
Ik heb onderstaande pagina geraadpleegd om de fout te ontdekken en met name naar de "functie" gekeken, maar ik begrijp het even niet meer.
http://www.phptuts.nl/view/39/7/ (van deze site heb ik veel van geleerd)

Deze code heb ik hier op de site gevonden en dus gebruikt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
// ik geef het liefst eerst een variabele aan waarin het bestand staat:
$file = "test.txt";
// open het bestand met 'r' (read)
$fopen = fopen($file, "r");
// haal de tekst eruit
$data = fgets($fopen, 4096);
// sluit het bestand weer af
fclose($fopen);

// weergeef wat in $data staat
echo "$data";
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.