highlight_file() in textarena

Status
Niet open voor verdere reacties.

leuthrick

Gebruiker
Lid geworden
17 sep 2008
Berichten
454
hallo,

ik heb dit script
PHP:
<?php
session_start();
$filename = $_SESSION['test'];

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$content = $_POST['content'];
// Kunnen we schrijven naar het bestand?
// Kan dit niet, dan error
if (is_writable($filename)) {

// Open het bestand
// Kan dit niet, dan error
if (!$handle = fopen($filename, 'w')) {
echo "kan het bestand niet openen";
exit;
}

// Schrijf de tekst uit de textarea naar het bestand
// Kan dit niet, dan error
if (fwrite($handle, $content) === FALSE) {
echo "Kan het bestan ($filename) niet bewerken";
exit;
}

// Meld dat het schrijven is gelukt
echo "Je hebt het bericht succesvol toegevoegd";

fclose($handle);

} else {
// Error van schrijfbaarheids check
echo "Het bestand $filename is niet schrijfbaar";
}
unset($_SESSION['test']);
} else {

// Open bestand en lees het uit, bestaat het bestand niet, dan wordt het gemaakt.
$handle = fopen($filename, 'a+');

// Controleer of er iets in file staat
// is deze leeg dan een size van 1 geven, bij 0 krijg je namelijk error.
if(filesize($filename) > 0){$size = filesize($filename);}else{$size = 1;}

// Maak string met inhoud van bestand
$content = fread($handle, $size);
fclose($handle);
?>
<html>
<body>
<form action="<? $_SERVER['PHP_SELF']; ?>" method="POST">
<textarea name="content" style="width: 400px; height: 400px;"><?=$content;?></textarea>
<br />
<input type="submit" value="Inhoud aanpassen" onClick="value='Opdracht wordt verwerkt...'" style="width: 400px;">

</form>
</body>
</html>
<?
}
?>

nu wil ik dat $content in een php opmaak word weer gegeven (<textarea name="content" style="width: 400px; height: 400px;"><?=$content;?></textarea> regel 52)

alvast bedankt
 
Je kunt in een textarea geen syntax-highlighting toepassen. Puur door het feit dat de textarea slecht 1 stijl accepteert. Je zou een iframe in designmode kunnen gebruiken (zoals een WYSIWYG-editor dat doet) maar daar weet ik het fijne niet van.

Je kunt het wel in een div zetten, dan gebruik je:

PHP:
<div><?php echo highlight_string ( $content ); ?></div>

Maar dan is het weer niet editable.
 
Nee, wat de highlight functies van PHP doen is het volgende:

Als je:

PHP:
<?php phpinfo(); ?>

door die functie haalt, geeft de functie dit terug:

HTML:
<code>
  <font color="#000000">
    <font color="#0000BB">
      &lt;?php phpinfo
    </font>
    <font color="#007700">
      (); 
    </font>
    <font color="#0000BB">
      ?&gt;
    </font>
  </font>
</code>

Als je dat in een div of ander standaard weergave element plaatst, wordt die HTML door de browser gewoon geparsed. Als je het in een textarea of input plaatst, dan wordt de HTML code gewoon weergegeven (en krijg je waarschijnlijk problemen met de quotes die je dan nog moet escapen).
 
en hoe zorg ik dat de hele code in de textarena gaat wand nu gaat op een pagina de submit butten gewoon onder de textarena
 
Dan zul je even de code moeten posten (van de pagina en de code die je in de textarea wilt zetten).
 
Hoe bedoel je? Waarom zou je de pagina niet meer kunnen aanpassen? Die staat toch gewoon op jouw computer / server?

Als je de code hier even neerzet, dan kunnen we kijken waarom het niet goed gaat met je submit-button.
 
als is de zelfde pagina laad om aan te passen dan staat er 2x een submit butten

PHP:
<?php
session_start();
$filename = $_SESSION['gd58gs7d8fg7964sda6dsfg69agf'];

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$content = $_POST['content'];
// Kunnen we schrijven naar het bestand?
// Kan dit niet, dan error
if (is_writable($filename)) {

// Open het bestand
// Kan dit niet, dan error
if (!$handle = fopen($filename, 'w')) {
echo "kan het bestand niet openen";
exit;
}

// Schrijf de tekst uit de textarea naar het bestand
// Kan dit niet, dan error
if (fwrite($handle, $content) === FALSE) {
echo "Kan het bestand ($filename) niet bewerken";
exit;
}

// Meld dat het schrijven is gelukt
echo "Je hebt de pagina succesvol aangepast";

fclose($handle);

} else {
// Error van schrijfbaarheids check
echo "Het bestand $filename is niet schrijfbaar";
}
unset($_SESSION['gd58gs7d8fg7964sda6dsfg69agf']);
} else {

// Open bestand en lees het uit, bestaat het bestand niet, dan wordt het gemaakt.
$handle = fopen($filename, 'a+');

// Controleer of er iets in file staat
// is deze leeg dan een size van 1 geven, bij 0 krijg je namelijk error.
if(filesize($filename) > 0){$size = filesize($filename);}else{$size = 1;}

// Maak string met inhoud van bestand
$content = fread($handle, $size);
fclose($handle);
?>
<html>
<style type="text/css">
<!--
#apDiv1 {
	position:absolute;
	width:332px;
	height:418px;
	z-index:1;
	left: 422px;
	top: 16px;
}
-->
</style>
<body>
<form action="<? $_SERVER['PHP_SELF']; ?>" method="POST">
<textarea name="content" style="width: 400px; height: 400px;"><?=$content;?></textarea>
<br />
<input type="submit" value="Inhoud aanpassen" onClick="value='Opdracht wordt verwerkt...'" style="width: 400px;">

</form>
<div id="apDiv1"><? 
highlight_file($filename); 
?></div>
</body>
</html>

<?
}
?>

en echo "test";

dat word echo \"test\";
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan