a.u.b. hulp bij 2 problemen.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

- Ariën  -
Beheerder

- Ariën -

11/01/2022 17:25:16
Quote Anchor link
In mijn voorbeeld krijg ik dat niet. Ik denk dat die witruimte ergens in het script wordt toegevoegd?
Wat zegt de print_r()?
Met trim() kan je die wissen.
Gewijzigd op 11/01/2022 17:25:45 door - Ariën -
 
PHP hulp

PHP hulp

19/03/2024 08:34:50
 
Paul Weiss

Paul Weiss

11/01/2022 17:26:01
Quote Anchor link
zal even kijken

Toevoeging op 11/01/2022 17:27:09:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php

$myfile
= "test.html"; // or .php  
$string = file_get_contents($myfile);

                          
$getcontent = preg_match('#(<p[^>]+id="check1"[^>]*>)(.*?)(<\/p>)#', $string, $matches );


$replace = trim( $matches[2] );
echo $replace;


if( isset($_GET['submit']) )
{


$replace = trim( $_REQUEST['mytext'] );
$output = preg_replace('!\s+!', ' ', $replace);
$replace = $output;




$content = preg_replace('#(<p[^>]+id="check1"[^>]*>).*?(</p>)#', '$1'.$replace.'$2', $string);

file_put_contents($myfile, $content);

echo $content;


echo $mytext;

}



?>




<form action="" method="get">
        
    <textarea rows = "30" cols = "150" name = "mytext">
          <?php echo htmlspecialchars($replace); ?>
         </textarea>
    
    <input type="submit" name="submit" value="send"></input>
</form>


Toevoeging op 11/01/2022 17:27:36:

geen idee waar het doorkomt.
 
- Ariën  -
Beheerder

- Ariën -

11/01/2022 17:35:40
Quote Anchor link
Wat is precies de uitvoer?
Ik krijg geen spaties of tabs erover en erachter, en die worden sowieso gestript door trim().
 
Paul Weiss

Paul Weiss

11/01/2022 17:38:00
Quote Anchor link
zal een screenshot maken

Toevoeging op 11/01/2022 17:46:04:

kan zo te zien geen bestand bijvoegen

Toevoeging op 11/01/2022 17:47:39:

bij de uitvoer als echo ... is er geen lege ruimte voor de tekst. in het formulier wel.
mhhh. vreeemd.

Toevoeging op 11/01/2022 17:50:07:

zat toch iets niet goed met de form. heb het invulveld van het formulier nu kleiner gemaakt. en is nu opgelost. heel gek. bedankt voor alle info en hulp. Heb veel aan jullie allemaal
 
- Ariën  -
Beheerder

- Ariën -

11/01/2022 18:01:53
Quote Anchor link
In het vervolg kan je afbeeldingen prima uploaden via imgbb.com.
Een uploadfunctie op dit forum faciliteren we niet.
Gewijzigd op 11/01/2022 18:02:03 door - Ariën -
 
Adoptive Solution

Adoptive Solution

11/01/2022 18:19:34
Quote Anchor link
Die spaties in textarea zijn niet zo vreemd.

Er staan er tig voor en na de php code

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
     <textarea rows = "30" cols = "150" name = "mytext">
          <?php echo htmlspecialchars($replace); ?>
         </textarea>


Doe het zo

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<textarea rows = "30" cols = "150" name = "mytext"> <?php echo htmlspecialchars($replace); ?></textarea>
 
Paul Weiss

Paul Weiss

11/01/2022 18:27:19
Quote Anchor link
ah daar komt het door. wist niet dat dat effect zou hebben. bedankt hiervoor.
 
Ivo P

Ivo P

12/01/2022 10:17:31
Quote Anchor link
tip:
haal ook de spatie voor <¿php nog weg. (die regel van Adoptive hierboven dus)

Daar komt er een spatie voor de tekst.
Waarschijnlijk haal je die later weer weg met trim(), maar lijkt me beter om de oorzaak te onderdrukken, ipv het gevolg steeds te moeten oplossen met trim() (al is die trim sowieso wel verstandig om er in te houden).
 
Paul Weiss

Paul Weiss

12/01/2022 10:53:18
Quote Anchor link
Goede tip. Ivo. Zal in het vervolg de gehele php code mooi op elkaar aansluiten om dergelijke situaties in de toekomst te voorkomen.
 
Adoptive Solution

Adoptive Solution

12/01/2022 16:01:22
Quote Anchor link
Is dit een idee?

Hoef je niet zo complex te hannesen met regex.

De INPUT wordt bewaard in een JSON bestand en daaruit weer opgevraagd en getoond in het FORM.

En tegelijkertijd bewaard in een geformatteerd .html bestand dat is gebaseerd op een template (sjabloon).

In het FORM kan je een sjabloon kiezen, zodat je met dezelfde INPUT diverse uitvoerbestanden kan maken.

tekst_sjabloon_1.html

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />

<style>
h1 { font-style: italic; }
p  { font-weight: bold; }
</style>

<h1>{H1}</h1>

<p>{CONTENT}</p>


tekst_sjabloon_2.html

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />

<style>
h1 { font-style: italic; }
p  { font-weight: bold; }
div {max-width: 500px; border: 1px solid red; padding: 0.500em;}
</style>

<div>

<h1>{H1}</h1>

<p>{CONTENT}</p>

</div>


tekst_uitvoeren.php PHP bestand

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
$bewaarJSON_file
= 'tekst_bewaar.json';
$tekst_template  = 'tekst_sjabloon';
$tekst_uit       = 'tekst_uit';

if( $_POST['submit'] && $_POST['title'] <> '' && $_POST['content'] <> '' )
{

    $bewaarArr            = [];
    $bewaarArr['title']   = htmlspecialchars( trim( $_REQUEST['title'] ) );
    $bewaarArr['content'] = htmlspecialchars( trim( $_REQUEST['content'] ) );
    $bewaarJSON           = json_encode( $bewaarArr );
    file_put_contents( $bewaarJSON_file, $bewaarJSON );

    $sjabloon       = $_POST['sjabloon'];
    $tekst_template = $tekst_template . '_' . $sjabloon . '.html';
    $template       = file_get_contents( $tekst_template );
    $tekst_uit      = $tekst_uit . '_' . $sjabloon . '.html';

    $template = preg_replace( '^\{H1\}^', nl2br( $bewaarArr['title'] ), $template );
    $template = preg_replace( '^\{CONTENT\}^', nl2br( $bewaarArr['content'] ), $template );
    file_put_contents( $tekst_uit, $template );
}
else {
    $tekst_uit = $tekst_uit . '_1.html';
    if ( !file_exists( $tekst_uit ) )
    {

        file_put_contents( $tekst_uit, '' );
    }
}


if ( file_exists( $bewaarJSON_file ) )
{

    $JSON_decoded = json_decode( file_get_contents( $bewaarJSON_file ), TRUE );

    echo '<h4>Decoded JSON array</h4>';
    echo '<pre>' . print_r( $JSON_decoded, TRUE ) . '</pre>';

    echo '<h4>Decoded text</h4>';
    echo $JSON_decoded['title'] . '<br />' . PHP_EOL;
    echo $JSON_decoded['content'] . '<br />' . PHP_EOL;

    $title   = $JSON_decoded['title'];
    $content = $JSON_decoded['content'];
}
else {
    $tempArr = [];
    file_put_contents( $bewaarJSON_file, json_encode( $tempArr ) );
}

?>


<script>
function clearInput() {
    document.getElementById('title').value = '';
    document.getElementById('content').value = '';
}
</script>

<form id="theForm" method="post">

<p><label for="sjabloon">Kies een sjabloon</label><br />
<select id="sjabloon" name="sjabloon">
    <option value="1">Sjabloon 1</option>
    <option value="2">Sjabloon 2</option>
</select></p>

<p><label for="title">Title (h1)</label><br />
<input type="text" id="title" name="title" value="<?php echo $title; ?>" /></p>

<p><label for="content">Inhoud (p)</label><br />
<textarea rows="5" cols = "80" id = "content" name = "content"><?php echo $content; ?></textarea></p>

<p><input type="submit" name="submit" /></p>

<p><input type="button" value="Wis Input" onclick="clearInput(); return false;" /></p>

</form>

<p><a href="<?php echo $tekst_uit; ?>" target="_blank">Toon uitvoerbestand</a></p>

<p><a href="<?php echo $bewaarJSON_file; ?>" target="_blank">Toon JSON bestand</a></p>
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.