Avatar billede donwang Nybegynder
20. juni 2003 - 11:28 Der er 39 kommentarer og
1 løsning

PHP lav fil?

Hvordan får jeg php til at lave en html eller php fil, med et givent indhold, og der efter smide den ind i en given mappe?
Avatar billede avminarm Juniormester
20. juni 2003 - 11:31 #1
mkfile og mkdir
Avatar billede donwang Nybegynder
20. juni 2003 - 11:32 #2
Kunne jeg ikke få lidt mere kode at arbejde med? (Er ret grøn)
Avatar billede schaefner Juniormester
20. juni 2003 - 11:36 #3
avminarm >> mkfile findes da vidst ikke ;)
Avatar billede schaefner Juniormester
20. juni 2003 - 11:42 #4
Utestet:

<?php
$dir = 'mappe'; // Mappen der skal oprettes
mkdir($dir); // Laver mappen

$str = '<html><head></head><body><h1>Hej med dig</h1></body></html>'; // Indholdet i filen

$handle = fopen($dir.'/nyfil.html','w');
fwrite($handle,$str);
fclose($handle);
?>
Avatar billede avminarm Juniormester
20. juni 2003 - 11:46 #5
schaefner>> kortslutning ;o)

noget ala (det ligner schaefners, men nu var det altså lavet:
<?php
$write = "det der skal skrives i den nye fil";
$filename = "din/sti/din_fil.php";
$fd = fopen ($filename, "w");
fwrite ($fd, $write, strlen($write));
fclose ($fd);
?>

se lidt på: http://www.php.net/manual/en/function.fwrite.php
Avatar billede donwang Nybegynder
20. juni 2003 - 11:51 #6
Det jeg havde tænkt mig er noget ala. dette jeg har sat sammen:
Det virker bare ikke:)

<?php
if($_POST['mappe']) {
$dir = '$mappe'; // Mappen der skal oprettes
mkdir($dir); // Laver mappen

$str = '<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<title>Christian.Jespersen.se</title>
</head>
<frameset rows="*">
  <frame name="side" src="$mappe">
  <noframes>
  <body>
</body>
  </noframes>
</frameset>
</html>'; // Indholdet i filen

$handle = fopen($dir.'/index.html','w');
fwrite($handle,$str);
fclose($handle);
?>
<html>
<form action='tilfoej.php' method='post'>
<span class='font'>Mappe</span><br>
<input class="border" type='font' name='mappe' size='16' maxlength='32'><br>
<span class='font'>Sidens adresse</span><br>
<input class="border" type='font' value='http://' name='url' size='16'><br>
<input  class="border"name='reset' type='reset' value='Slet'>
<input class="border" name='submit' value='Send' type='submit'>
</form>
Avatar billede donwang Nybegynder
20. juni 2003 - 11:52 #7
Den der: <frame name="side" src="$mappe"> skal være =
<frame name="side" src="$url">
Avatar billede avminarm Juniormester
20. juni 2003 - 11:58 #8
tror at $dir = $mappe skal være 4dir = $_POST['mappe']
Avatar billede donwang Nybegynder
20. juni 2003 - 12:12 #9
Det er ikke det der er problemet:

Parse error: parse error, unexpected $ in /home/web/web3488/sub/mappe.php on line 32
Avatar billede avminarm Juniormester
20. juni 2003 - 12:45 #10
du mangler en } til sidst
Avatar billede donwang Nybegynder
20. juni 2003 - 12:53 #11
Så få jeg den her:
Parse error: parse error, unexpected T_STRING in /home/web/web3488/sub/mappe.php on line 4

I denne linie:
mkdir($dir); // Laver mappen
Avatar billede pbudk Nybegynder
20. juni 2003 - 13:00 #12
Vær lige opmærksom på, at det er webserveren, der nu har ejerskab over den nyligt oprettede fil. Dvs. du kan ikke slette denne via ftp.
Avatar billede avminarm Juniormester
20. juni 2003 - 13:01 #13
Hvordan fastsættes $mappe ??

kunne du ikke omskrive til : mkdir($mappe); // Laver mappen evt. $_POST['mappe']
Avatar billede donwang Nybegynder
20. juni 2003 - 13:23 #14
Fra <input class="border" type='font' name='mappe' size='16' maxlength='32'><br>
Avatar billede donwang Nybegynder
20. juni 2003 - 13:24 #15
Hva? Kan man ikke slette den via. ftp?
Avatar billede donwang Nybegynder
20. juni 2003 - 13:24 #16
Findes der ikke en løsning på dette?
Avatar billede avminarm Juniormester
20. juni 2003 - 13:25 #17
joo - det skulle ma da ku??
Avatar billede donwang Nybegynder
20. juni 2003 - 13:26 #18
Hvorfor siger han så sådan?

Vær lige opmærksom på, at det er webserveren, der nu har ejerskab over den nyligt oprettede fil. Dvs. du kan ikke slette denne via ftp.
Avatar billede avminarm Juniormester
20. juni 2003 - 13:29 #19
elers kan man slette med "unlink" http://dk2.php.net/manual/en/function.unlink.php
Avatar billede donwang Nybegynder
20. juni 2003 - 13:30 #20
Jo, man kan da godt se/slette den via ftp...
Avatar billede donwang Nybegynder
20. juni 2003 - 13:33 #21
Er der´ingen der kan se fejlen?
http://www.jespersen.se/sub/mappe.php
Avatar billede pbudk Nybegynder
20. juni 2003 - 13:40 #22
Hvis du kører på en *nix platform får apache serverens bruger ejerskab over filen , ja du kan slette den med unlink (da denne kommando jo også køres med apache brugeren). Men ellers skal der en chmod eller chown til for at du kan slette/redigere.
Avatar billede donwang Nybegynder
20. juni 2003 - 13:41 #23
Opdateret code:

<?php

$dir = $_POST['mappe'] // Mappen der skal oprettes
mkdir($dir); // Laver mappen

$str = '<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<title>Christian.Jespersen.se</title>
</head>
<frameset rows="*">
  <frame name="side" src="$mappe">
  <noframes>
  <body>
</body>
  </noframes>
</frameset>
</html>'; // Indholdet i filen

$handle = fopen($dir.'/index.html','w');
fwrite($handle,$str);
fclose($handle);
}
?>
<html>
<form action='tilfoej.php' method='post'>
<span class='font'>Mappe</span><br>
<input class="border" type='font' name='mappe' size='16' maxlength='32'><br>
<span class='font'>Sidens adresse</span><br>
<input class="border" type='font' value='http://' name='url' size='16'><br>
<input  class="border"name='reset' type='reset' value='Slet'>
<input class="border" name='submit' value='Send' type='submit'>
</form>
Avatar billede donwang Nybegynder
20. juni 2003 - 13:55 #24
Hjæææælp!!?
Avatar billede avminarm Juniormester
20. juni 2003 - 13:56 #25
nu mangler du jo (Øverst): if($_POST['mappe']) {

som jeg ville lave om til if(isset($_POST['mappe'])) {

og $dir = $_POST['mappe']  mangler et ; til sidat: $dir = $_POST['mappe'];
Avatar billede donwang Nybegynder
20. juni 2003 - 14:08 #26
Year! Så virker det...
Men her skulle $url jo gerne erstattes af det man har tastet i feltet url, men det gør det ikke?

$str = '<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<title>Christian.Jespersen.se</title>
</head>
<frameset rows="*">
  <frame name="side" src="$url">
  <noframes>
  <body>
</body>
  </noframes>
</frameset>
</html>'; // Indholdet i filen
Avatar billede avminarm Juniormester
20. juni 2003 - 14:09 #27
den skal hedde $_POST['url']
Avatar billede donwang Nybegynder
20. juni 2003 - 14:13 #28
Det er ikke det, fordi indholdet af den fil den laver ser sådan ud:


<frameset rows="*,*">
  <frame name="side" src="$_POST['url']">
  <noframes>
Avatar billede avminarm Juniormester
20. juni 2003 - 14:20 #29
måske:

<frameset rows="*,*">
  <frame name="side" src="<?php echo $_POST['url']; ?>">
  <noframes>
Avatar billede donwang Nybegynder
20. juni 2003 - 14:24 #30
Nope...

Det er jo her det ligger, åbenbart unden for php`s række vider?:

$str = '<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<title>Christian.Jespersen.se</title>
</head>
<frameset rows="*">
  <frame name="side" src="$mappe">
  <noframes>
  <body>
</body>
  </noframes>
</frameset>
</html>'; // Indholdet i filen

$handle = fopen($dir.'/index.html','w');
fwrite($handle,$str);
fclose($handle);
}
?>
Avatar billede pbudk Nybegynder
20. juni 2003 - 14:27 #31
hvor sætter du variablen $mappe ?
skal det ikke være :
$str = '<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<title>Christian.Jespersen.se</title>
</head>
<frameset rows="*">
  <frame name="side" src="'.$_POST["mappe"].'">
  <noframes>
  <body>
</body>
  </noframes>
</frameset>
</html>';
Avatar billede donwang Nybegynder
20. juni 2003 - 14:37 #32
Takker!

Lige et sidste spm...

Hvor får jeg den nye mappe til at ligge i bunden af serveren, når filen der laver den selv ligger i en mappe?
Avatar billede pbudk Nybegynder
20. juni 2003 - 14:39 #33
$dir = "/sti/til/bund/".$_POST['mappe'] // Mappen der skal oprettes
mkdir($dir); // Laver mappen
Avatar billede pbudk Nybegynder
20. juni 2003 - 14:40 #34
hov - der mangler er ;
Avatar billede donwang Nybegynder
20. juni 2003 - 14:41 #35
Jamen når jeg er helt i bund hedder det bare / ?
Avatar billede pbudk Nybegynder
20. juni 2003 - 14:44 #36
ok - jeg troede du ville pege den ud i roden af din webserver.

Men ellers skriver du jo bare:
$dir = "/".$_POST["mappe"];
Avatar billede donwang Nybegynder
20. juni 2003 - 18:48 #37
Er der nogen der vil have point?
Avatar billede avminarm Juniormester
23. juni 2003 - 13:38 #38
jo tak ;o)
Avatar billede avminarm Juniormester
18. juli 2003 - 11:43 #39
LUKKETID??
Avatar billede avminarm Juniormester
24. juli 2003 - 08:16 #40
hmm ville i andre ikke have haft points??
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