Avatar billede je79ayps Novice
19. juli 2003 - 09:28 Der er 24 kommentarer og
1 løsning

Brug af include og specialtegn

Jeg har opdaget include funktionen som jeg har lige et par spørgsmål til denne, så jeg er sikker på at jeg gør det på den rigtige måde. :o)

Er det korrekt at mine .php filer som jeg inkludere blot skal indeholde den ren tekst - altså ikke noget med nogle <html>, <head> og <body> tags men ellers blot den tekst jeg normalt vil skrive mellem <body> og </body>

Kan jeg på nogen måde gøre sådan at alle specialtegnene (såsom æ, ø og å) bliver omskrevet til html-tagget?
Avatar billede schaefner Juniormester
19. juli 2003 - 09:43 #1
Med hensyn til de filer du inkluderer, så er det korrekt nok antaget.
Og ang. specialtegn, så kan du prøve at kigge på: http://php.net/htmlentities

mvh. Jesper Sørensen
Avatar billede je79ayps Novice
19. juli 2003 - 10:04 #2
Morn' Jesper! Hvordan laver jeg helt præcist en include med htmlentities?

Jeg går ikke udfra at nedenstående vil virke? :o)

<?php
include htmlentities("test.php");
?>

Hvad gør htmlspecialchars forresten?
Avatar billede schaefner Juniormester
19. juli 2003 - 10:15 #3
nej, så skal du nok gøre sådan:

<?php
$fileArr = file('test.php');
$var = htmlentities(implode('',$fileArr));
echo $var;
?>

htmlspecialchars() gør det samme som htmlentities(), den ændre bare kun &, ", ', < og >

mvh. Jesper Sørensen
Avatar billede je79ayps Novice
19. juli 2003 - 10:23 #4
OK, hvis jeg så skal have den ind i en switch er det så bare noget ala dette:

case "test":
$fileArr = file('test.php');
$var = htmlentities(implode('',$fileArr));
echo $var;
break;

Hvad gør denne: (implode('',$fileArr)); ?
Avatar billede schaefner Juniormester
19. juli 2003 - 10:26 #5
<?php
$fileArr = file('test.php'); // Laver et array med indholdet af test.php
$var = implode('',$fileArr); // Laver array'et om til en streng (Se http://php.net/implode)
$var = htmlentities($var); // Bruger htmlentities() på den streng
echo $var; // Udskriver strengen
?>

Din switch ser umiddelbart fin ud.

mvh. Jesper Sørensen
Avatar billede je79ayps Novice
19. juli 2003 - 10:28 #6
Jeg har lige smidt lidt flere point i spørgsmålet, så nu hvor jeg har dig - hvordan kan jeg så evt. gøre hvis jeg kun vil vise de føste 200 tegn (altså kun den rene tekst ingen tags) og så lave en "... læs mere" link?
Avatar billede schaefner Juniormester
19. juli 2003 - 10:29 #7
første 200 tegn fra en fil?
Avatar billede schaefner Juniormester
19. juli 2003 - 10:33 #8
"altså kun den rene tekst ingen tags."

Skal html-tags så fjernes eller skal de vises som tekst (ligesom her på eksperten)?
Avatar billede je79ayps Novice
19. juli 2003 - 10:35 #9
De skal fjernes - så hvis der står <p>Test</p> skal der kun stå Test.
Avatar billede schaefner Juniormester
19. juli 2003 - 10:38 #10
<?php
$fileArr = file('test.php');
$var = implode('',$fileArr);
$var = strip_tags($var);
echo substr(,0,200);
?>

mvh. Jesper Sørensen
Avatar billede schaefner Juniormester
19. juli 2003 - 10:38 #11
hov:

echo substr($var,0,200);
Avatar billede je79ayps Novice
19. juli 2003 - 10:44 #12
OK, jeg vil lige prøve når jeg kommer hjem (er på arbejde nu).

Er det iøvrigt meget resource-krævende at lave sådan noget hvis det er en længere tekst?
Avatar billede je79ayps Novice
19. juli 2003 - 10:55 #13
Hov hvad med "... læs mere" linket for at se hele teksten? :o)
Avatar billede je79ayps Novice
20. juli 2003 - 21:32 #14
Er du stadig med Jesper? :o)
Avatar billede tipsen Nybegynder
21. juli 2003 - 15:10 #15
Hvad der ligger i en fil du include'r er hamrende ligegyldigt, sålænge det er plain-text (dvs. ikke binære data) - om der er html-koder eller ej betyder ikke noget, bortset fra at det skal passe ind i den endelige struktur på sitet.
Avatar billede je79ayps Novice
21. juli 2003 - 15:17 #16
Hvad ville et eksempel på binære data være hvis nu jeg skulle øge min forståelse? :o)
Avatar billede tipsen Nybegynder
21. juli 2003 - 15:55 #17
Eksempler på binære data er .exe, .gif og .doc filer.
Avatar billede je79ayps Novice
21. juli 2003 - 17:35 #18
OK - tak for det.

Ved du evt. også hvordan jeg laver det der "... læs mere" link så jeg kan få lukket spørgsmålet?
Avatar billede schaefner Juniormester
21. juli 2003 - 17:40 #19
Et simpelt og utestet eksempel:

<?php
if (isset($_GET['fil'])) {
  include($_GET['fil']);
} else {
  $fileArr = file('test.php');
  $var = implode('',$fileArr);
  $var = strip_tags($var);
  echo substr($var,0,200).' [<a href="?fil=test.php"'>Læs mere...</a>]';
}
?>

mvh. Jesper Sørensen
Avatar billede je79ayps Novice
21. juli 2003 - 20:56 #20
Det er sikkert rigtigt, men jeg skulle gerne have det til at passe ind i en switch, men det kunne jeg ikke udmiddelbart, så nu har jeg blot sat koden ind i en side for sig selv.

Men den kommer med denne Parse error: parse error, unexpected T_STRING, expecting ',' or ';' på linie 16. Det er echo linien.

Jeg har blot copy-pasted dit eksempel og forsøger at fange min test.php fil.
Avatar billede schaefner Juniormester
21. juli 2003 - 20:57 #21
min fejl:
echo substr($var,0,200).' [<a href="?fil=test.php"'>Læs mere...</a>]';
skal være:
echo substr($var,0,200).' [<a href="?fil=test.php">Læs mere...</a>]';
Avatar billede je79ayps Novice
21. juli 2003 - 21:12 #22
Du er en skat.

Sidste ting så skal du blive fri for mig - kan du gøre sådan at ... kommer efter den udtrukne tekst og så linket kommer bagefter altså ... [Link]. Og kunne du evt. hjælpe mig med hvordan jeg sætte det ind i min switch - jeg har prøvet nedenstående men får igen i en parse error:

Parse error: parse error, unexpected T_DEFAULT på linie 60 (default linien).

Her er min switch:

<?php
  if (!isset($_GET['side'])) {
  $side = "default";
    }else{
    $side =$_GET['side'];
    }

  switch ($action)
  {
    case "kalender":
    include("kalender.php");
$titel = "Kalender";
    break;

    case "test":
if (isset($_GET['fil'])) {
  include($_GET['fil']);
} else {
  $fileArr = file('test.php');
  $var = implode('',$fileArr);
  $var = strip_tags($var);
  echo substr($var,0,200).' [<a href="?fil=test.php">Læs mere...</a>]';
    break;

    default: include("forside.php");
$titel = "Forsiden";
    break;
  }
?>

Jeg har lige hævet med 15 point som tak. :o)
Avatar billede je79ayps Novice
22. juli 2003 - 14:55 #23
Undskyld Jesper, men jeg tror da vist jeg er ved at få hedeslag - jeg skal selvfølgelig ikke bruge det i min switch!

Så hvis du bare kan lave det med ... så er pointene dine! :o)
Avatar billede schaefner Juniormester
22. juli 2003 - 15:35 #24
<?php
if (isset($_GET['fil'])) {
  include($_GET['fil']);
} else {
  $fileArr = file('test.php');
  $var = implode('',$fileArr);
  $var = strip_tags($var);
  echo substr($var,0,200).'... [<a href="?fil=test.php">Læs mere</a>]';
}
?>

mvh. Jesper Sørensen
Avatar billede je79ayps Novice
23. juli 2003 - 08:08 #25
Tak for hjælpen Jesper!
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