Avatar billede 140wx2 Nybegynder
14. maj 2007 - 19:55 Der er 16 kommentarer og
1 løsning

strtr() på include

Hej. Er det muligt og include en fil, og derefter fjerne noget tekst f.eks.?

Er nået frem til:
<?
$fjern = array(
'hej' => 'Hej',
);

$include = include "http://www.test.dk/index.php";

echo strtr($include, $fjern);
?>
Avatar billede jakobdo Ekspert
14. maj 2007 - 20:00 #1
Måske jeg misforstår, men du kunne måske lave:

$content = file_get_contents("http://www.test.dk/index.php");

echo strtr($content, $fjern);
Avatar billede 140wx2 Nybegynder
14. maj 2007 - 20:02 #2
Nope. Nu tager den jo bare PHP koden ud.
Avatar billede 140wx2 Nybegynder
14. maj 2007 - 20:03 #3
Dette udskriver den:
0) error_reporting(E_ALL); // phpUA Engine require_once ABSOLUTEPATH . "includes/engine/benchmark.inc"; startBenchmark(__FILE__, __FUNCTION__); require_once ABSOLUTEPATH . "includes/engine/smarty.inc"; require_once ABSOLUTEPATH . "includes/engine/credits.inc"; require_once ABSOLUTEPATH . "includes/engine/errorhandler.inc"; require_once ABSOLUTEPATH . "includes/engine/config.inc"; require_once ABSOLUTEPATH . "includes/engine/languages.inc"; require_once ABSOLUTEPATH . "includes/engine/log.inc"; require_once ABSOLUTEPATH . "includes/engine/auth.inc"; require_once ABSOLUTEPATH . "includes/engine/plugins.inc"; require_once ABSOLUTEPATH . "includes/engine/content.inc"; endBenchmark(__FILE__, __FUNCTION__); printBenchmark(); ?>
Avatar billede jakobdo Ekspert
14. maj 2007 - 20:06 #4
Måske sådan her:

<?php

function callback($buffer)
{
  // replace all the apples with oranges
  return (strtr($buffer, $fjern));
}

ob_start("callback");

include("http://www.test.dk/index.php");

ob_end_flush();

?>

//Copy/Paste fra php.net/ob_start
Avatar billede 140wx2 Nybegynder
14. maj 2007 - 20:08 #5
$buffer, hvad er det for en string?
Avatar billede 140wx2 Nybegynder
14. maj 2007 - 20:10 #6
Jeg må ærligt indrømme jeg forstår ikke helt den kode.
Avatar billede jakobdo Ekspert
14. maj 2007 - 20:20 #7
Avatar billede jakobdo Ekspert
14. maj 2007 - 20:25 #8
Men i stedet for at bruge kode til det, hvorfor så ikke åbne php koden i en editor og brug replace funktionen.
Avatar billede 140wx2 Nybegynder
14. maj 2007 - 20:28 #9
Jamen ved mig virker det ikke.
Avatar billede hmortensen Nybegynder
14. maj 2007 - 20:30 #10
$content = file_get_contents("http://www.test.dk/index.php");
echo strtr($content, $fjern);

Bør virke, men det kræver at du bruger URL'en og ikke den relative sti.
Avatar billede 140wx2 Nybegynder
14. maj 2007 - 20:33 #11
Det virker.

Men pointen i at gøre det med den relative sti er at slippe for evt. lag. Altså ved at gøre det med URL'en går det via internettet, og derved bliver det langsommere include.
Avatar billede hmortensen Nybegynder
14. maj 2007 - 20:36 #12
Webserveren vil ikke gå på nettet, men vil blot eksekvere filen og returnere indholdet til sig selv (PHP fortolkeren).
Avatar billede 140wx2 Nybegynder
14. maj 2007 - 20:39 #13
Arg okay. Så den vil ikke lave unødvendig pegning over nettet?
Hvis man kan sige det sådan.
Avatar billede jakobdo Ekspert
14. maj 2007 - 20:43 #14
Du kan ikke få php koden via internettet nej, der får du som hmortensen er inde på, kun html/javascript/css koden osv...
Så ved at lave det internt, kan du godt få php koden.
Men når du har sourcekoden, hvorfor så ikke lave replace i en editor?
Avatar billede 140wx2 Nybegynder
14. maj 2007 - 20:45 #15
Jeg vil sådan set ikke have PHP-koden :P
Den kode du gav mig virker fint :)

Smid et svar. Og tak.
Avatar billede jakobdo Ekspert
14. maj 2007 - 20:48 #16
Svar!
Avatar billede jakobdo Ekspert
14. maj 2007 - 20:59 #17
Takker for point.
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