Avatar billede stevenizzle Nybegynder
13. juli 2005 - 12:23 Der er 6 kommentarer og
1 løsning

Sideskift grundet linieantal

Med nedenstående kode, skal jeg kunne tælle enhver fils linier, og forkorte dem til et valgt antal - men det lader sig til at denne kode udelukkende virker med txt-filer. Jeg vil blot høre om nogle ved hvordan dette kan ændres, samt få mine næste-knap til og virke (den virker, men fjerner sig ikke når der ikke er flere.

Desuden vil jeg godt høre om det er muligt, og sørge for at der en side ALDRIG starter med linieskift, selvom den er nået til dette!

--
<?php
if(!$s) {
$s = 'root';
} else {
$s = $_GET['s'];
}

if ($s) {
$lines = file($s. ".php");
$lines_per_page = 22;
$num_lines = count($lines);
if(!isset($_GET['p']) || empty($_GET['p'])) {
  $p = 0;
} else {
  $p = $_GET['p'];
}
for($i = $p; $i < $p+$lines_per_page; $i++) {
    echo $lines[$i];
}
echo "<div style=\"text-align:right;\">";
if ($p) {
echo "<a href=\"index.php?s={$s}&p=".($p-$lines_per_page)."\">tilbage</a> | ";
}
if ($lines_per_page > $num_lines) {
echo "<a href=\"index.php?s={$s}&p=$i\">næste</a>";
}
?>
Avatar billede wuggawugga Nybegynder
14. juli 2005 - 10:02 #1
Det virker nok ikke med HTML fordi linieskift ser anderledes ud deri.
Du skal nok lave en kopi i tekstformat, der minder så meget som muligt om HTML versionen.

F.eks.

...

// Erstat HTML linebreaks med tekst newlines
$search = array('<br>', '<br />');
$lines = str_replace($search, "\n", $lines);  // Eller "\r\n"
// Fjern HTML tags, så vi kun arbejder med indholdet
$lines = strip_tags($lines);

...


Hvis ikke du har HTML linebreaks(som bliver lavet om til linieskift), skal du bruge wordwrap() eller lignende til at indsætte nogle.
Avatar billede plazm Nybegynder
14. juli 2005 - 10:12 #2
Kan nu ikk se hvad mit svar fra det andet spørgsmål fejlen
Nu med nogle modificeringer.

<?php
if(!isset($_GET["s"])) { $s = 'root'; }
else { $s = $_GET["s"]; }
$num_of_rows=2;

$input=file($s.".php");
if(!isset($_GET["start"])){$start=0;}else{$start=$_GET["start"];}
$lines_input = count($input);
for($x=($start*$num_of_rows);$x<($start*$num_of_rows+$num_of_rows);$x++) {
  echo htmlspecialchars($input[$x])."<br />\n\r";
}
echo "<br /><br />\n\r";
$pages = floor($lines_input/$num_of_rows);
if(($start-1) >= 0){echo "<a href=\"?s=".$s."&start=".($start-1)."\">Forrige</a> \n";}
for($a=0;$a<=$pages;$a++) {
  echo "<a href=\"?s=".$s."&start=".$a."\">".($a+1)."</a> ";
}
if(($start+1) <= $pages){echo "<a href=\"?s=".$s."&start=".($start+1)."\">Næste</a> \n";}
?>
Avatar billede plazm Nybegynder
14. juli 2005 - 10:16 #3
<?php
if(!isset($_GET["s"])) { $s = 'root'; }
else { $s = $_GET["s"]; }
$num_of_rows=22;

$input=file($s.".php");
if(!isset($_GET["start"])){$start=0;}else{$start=$_GET["start"];}
$lines_input = count($input);
for($x=($start*$num_of_rows);$x<($start*$num_of_rows+$num_of_rows);$x++) {
  if (str_replace(array(" ","\n","\r","<br>"),"",$input[$x]) != "") {
    echo htmlspecialchars($input[$x])."<br />\n\r";
  }
}
echo "<br /><br />\n\r";
$pages = floor($lines_input/$num_of_rows);
if(($start-1) >= 0){echo "<a href=\"?s=".$s."&start=".($start-1)."\">Forrige</a> \n";}
for($a=0;$a<=$pages;$a++) {
  echo "<a href=\"?s=".$s."&start=".$a."\">".($a+1)."</a> ";
}
if(($start+1) <= $pages){echo "<a href=\"?s=".$s."&start=".($start+1)."\">Næste</a> \n";}
?>

skulle det så være.
Avatar billede Slettet bruger
14. juli 2005 - 19:36 #4
Når du henter en .php fil, vil du også udskrive den php kode der måtte være, i stedet for at den bliver tolket af browseren. Det er vel ikke helt efter hensigten.
Avatar billede Slettet bruger
14. juli 2005 - 19:59 #5
Hvis den fil du hentede, indeholdte f.eks:

<?php
echo "en meget lang tekst på 50 linjer";
?>

Ville den lange tekst ikke alene blive vist, men også "echo" sætningen.
Avatar billede stevenizzle Nybegynder
15. juli 2005 - 13:23 #6
dropper det.. /spørgsmål lukkes!
Avatar billede stevenizzle Nybegynder
15. juli 2005 - 13:23 #7
ups :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester