de titel zonder .txt weergeven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sander van Viegen

Sander van Viegen

27/08/2010 22:12:55
Quote Anchor link
Ik heb het volgende script:
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
<?php
function compare($a,$b) {
  return $b[1] - $a[1];
}

$dir='../nieuws';
$max=3;
$files=Array();
$f=opendir($dir);
while (($file=readdir($f))!==false) {
  if(is_file("$dir/$file")) {
    $files[]=Array($file,filemtime("$dir/$file"));
  }
}

closedir($f);
usort($files,"compare");
$m=min($max,count($files));
for ($i=0;$i<$m;$i++) {

echo "<h1>{$files[$i][0]}\n</h1>";
include "{$files[$i][0]}";
}

?>

en nu wil ik dat hij de titel zodenr de txt van het tekstbestaan laat zien.
Ik krijg het niet voor elkaar :(

Iemand een oplossing?
 
PHP hulp

PHP hulp

24/04/2024 06:43:33
 
Noppes Homeland

Noppes Homeland

27/08/2010 22:19:55
Quote Anchor link
PHP VARIABELEN BUITEN QUOTES!!

dan hoef je ook niet van die rara fratsen uit te halen

"Ik krijg het niet voor elkaar :("
Indien gij dan zoekt op http://www.php.net, had gij kunnen vinden
http://nl3.php.net/pathinfo


je script is ook nog eens zo lek als een mandje! Je dient beter te controleren en valideren op hetgeen je gaat includen in dit geval
Gewijzigd op 27/08/2010 22:22:10 door Noppes Homeland
 
Jelmer -

Jelmer -

28/08/2010 01:23:21
Quote Anchor link
Je kan ook spelen met basename() en dirname(). basename() accepteert een tweede argument om de extensie weg te laten.

Ik zie trouwens niet wat er lek is aan dit script. Het is niet erg netjes, en je zou het kunnen misbruiken wanneer er ergens anders nog een lek in je site zit (waarbij je dit script aan kan roepen met een andere working directory) maar dat is wat ver gezocht.
Gewijzigd op 28/08/2010 01:27:35 door Jelmer -
 
P Lekensteyn

P Lekensteyn

28/08/2010 10:13:40
Quote Anchor link
Nou, er wordt gesproken over '.txt'. Dat is zeker geen PHP, gebruik dan ook readfile i.p.v. include.
 
Sander van Viegen

Sander van Viegen

28/08/2010 12:18:44
Quote Anchor link
Bedankt allemaal, ik heb de titel voor elkaar, maar nu zit ik met de tekst deze geeft een foutmelding:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
Warning: include(nieuws.txt) [function.include]: failed to open stream: No such file or directory in F:\Prive\server2go\htdocs\1\main.php on line 23

Warning: include() [function.include]: Failed opening 'nieuws.txt' for inclusion (include_path='.;F:\Prive\server2go\server\php\PEAR') in F:\Prive\server2go\htdocs\1\main.php on line 23


Dit is wat ik nu heb:
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
<?php
function compare($a,$b) {
  return $b[1] - $a[1];
}

$dir='../pag/doc';
$max=6;
$files=Array();
$f=opendir($dir);
while (($file=readdir($f))!==false) {
  if(is_file("$dir/$file"))
 {

    $file2 = basename($file, ".txt");
    $files[]=Array($file2,filemtime("$dir/$file"));
  }
}

closedir($f);
usort($files,"compare");
$m=min($max,count($files));
for ($i=0;$i<$m;$i++) {

echo "<h1>{$files[$i][0]}</h1>";

include "{$files[$i][0]}.txt";

echo "<br>";

}

?>
Gewijzigd op 28/08/2010 12:19:36 door Sander van Viegen
 
- SanThe -

- SanThe -

28/08/2010 12:22:12
Quote Anchor link
Path zal niet goed zijn of de file heeft geen leesrechten.

Toevoeging op 28/08/2010 12:25:18:

En gebruik fatsoenlijke syntax.
Niet include "{$files[$i][0]}.txt";
Maar include($files[$i][0] . '.txt');
 
Sander van Viegen

Sander van Viegen

30/08/2010 10:29:11
Quote Anchor link
Het gekke is dat sommige bestanden wel worden uitgelezen en andere weer niet,

Hoe kan ik controleren of de lees rechten er voor die bestanden zijn?
 
Jelmer -

Jelmer -

30/08/2010 10:34:04
Quote Anchor link
is_readable($files[$i][0] . '.txt');
 
Sander van Viegen

Sander van Viegen

30/08/2010 10:39:23
Quote Anchor link
Bedankt voor de snelle reactie

Deze files zijn niet readable, wat kan ik hier aan doen?
om ze wel leesbaar te krijgen?
 
Niels K

Niels K

30/08/2010 10:40:49
Quote Anchor link
chmod Lees wel eerst even alle mogelijke opties. En het gebruik van de recht: 777 raad ik je ook af.

Voor de rest, heb je de variablen al buiten de quotes gezet?
Gewijzigd op 30/08/2010 10:42:00 door Niels K
 
Jelmer -

Jelmer -

30/08/2010 11:19:39
Quote Anchor link
De bestanden chmodden (zie de handleiding van je FTP programma) naar 644 denk ik. Dan zouden ze wel leesbaar moeten zijn voor PHP.
 
Sander van Viegen

Sander van Viegen

30/08/2010 11:39:46
Quote Anchor link
Niels Kieviet op 30/08/2010 10:40:49:
Voor de rest, heb je de variablen al buiten de quotes gezet?

Wat bedoel je hiermee?
 
Niels K

Niels K

30/08/2010 12:14:28
Quote Anchor link
Lees jij de reacties niet goed? Noppes zegt het in zijn eerste post.

Ik heb het een beetje netjes gemaakt: Maar heb je nog nooit gehoord van:

- Overzichtelijk programmeren
- Commentaar bij de code zetten
- Variabelen een naam geven die wat zegt over wat de variabele opslaat of doet?

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php

/**
 * Functie om blaasblaablaablaa
 *
 * @param String $a Wat is dit? Betere naamgeving?
 * @param String $b Idem voor deze
 * @return Mixed
 */

function compare($a,$b)
{

    return $b[1] - $a[1];
}


// Dir
$dir = '../pag/doc';
// Maximale files? Appels, peren?
$max = 6;
// Alle files opvangen in Array
$files = Array( );
// Open directory
$f = opendir( $dir ); // Waarom als naam f?
// Directory op files nalopen

while( ( $file = readdir( $f ) ) !== false )
{
    
    // Controleren of resultaten bestanden zijn
    if( is_file ( $dir .'/'. $file ) ) // Dit bedoelde ik dus.. ( Variablen uit de quotes )
    {
        $file2 = basename( $file, '.txt' );
        $files[] = Array( $file2, filemtime( $dir.'/'.$file ) ); // Weer variablen uit de quotes gehaald
    }
}


// Sluit directory
closedir( $f );
usort( $files, 'compare' );
$m = min( $max, count( $files ) ); // Naam geving
    //

    for ( $i = 0; $i < $m; $i++ )
    {

        echo '<h1>'. $files[$i][0] .' </h1>'; // Variablen buiten de quotes

        // Bestand importeren

        require_once $files[$i][0] .'text'; // Variablen buiten de quotes
        
        echo '<br />'; // Enkel quotes
    }
?>
 
Sander van Viegen

Sander van Viegen

30/08/2010 14:25:50
Quote Anchor link
Dat ziet er goed uit, bedankt.
Kan het probleem ook ergens anders aan liggen, dat de content niet weergegeven wordt?
Als ik namelijk de inhoud van het txt bestand wijzig, dan veranderd er niks op de pagina.
ik open de pagina lokaal, hoe kan ik dan chmod toepassen?
Gewijzigd op 31/08/2010 09:47:43 door Sander van Viegen
 



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.