Door
Paul Weiss
op 11-01-2022 13:50
gewijzigd op 11-01-2022 14:00
3.972 views
hallo iedereen. Ik heb onderstaande php met een formulier. Deze werkt prima, dankzij hulp van enkelen van jullie. Maar zit met 2 dingen waar ik niet aan uit kom!
1. Wanneer de ingevoerde tekst bijv. is: tekst tekst tekst (dus met meerdere spaties of returns erin werkt het script niet meer. wel wordt leegruimte in het begin en einde weggelaten, maar hoe kan ik ervoor zorgen dat er slechts 1 lege ruimte is tussen elk woord en/of returns eruit worden gefilterd?
2. Ik wil de tekst uit het bestand ook in het begin via preg_match toekennen aan een variabel, zodat deze in het formulier wordt getoond. echter ik kom er niet aan uit hoe de synthax moet zijn van de preg-match functie. heb al van alles geprobeerd, maar het lukt mij niet. Bedoeling is dat de tekst net als bij de preg_replace achter id="check1". eruit wordt gehaald.
[code]
<?php
$myfile= "test.html"; // or .php
$string = file_get_contents($myfile);
onderstaand het html bestand waar het omgaat. het gaat dus om het stuk tekst na de id.
<p class="blogbericht" id="check1">hier staat dus de oude tekst die eigenljk aangepast/vervangen zou moeten worden door de tekst vanuit het formulier</p>
[size=xsmall]Toevoeging op 11/01/2022 15:59:55:[/size]
class="blogbericht" is gewoon als voorbeeld toegevoegd, maar daar komen dus andere classes te staan die niet altijd hetzelfde zijn. de id wel. daarmee maak ik de tag uniek, zodat ik weet welke ik moet vervangen.
[size=xsmall]Toevoeging op 11/01/2022 16:19:39:[/size]
Ik heb de onderstaande preg_match gebruik om de tekst eruit te filteren. maar ik krijg dit resultaat: <p class="blogbericht" id="check1">
Naast de kracht van reguliere expressie kan je ook kijken naar DOMdocument in PHP.
Daarmee kan je ook eenvoudig acties uitvoeren op HTML-tags (of XML).
met dom ben ik helaas op dit moment nog niet bekend. maar daar zal ik met de tijd ook wel aan toe komen. Heeft iemand wellicht de syntax voor de preg_match?
<style>
#dit { font-weight: bold;}
#dat { font-style: italic;}
</style>
<?php
// id is uniek en staat direct na p
$string = '<p id="dit" class="zusofzo">hier staat dus de oude tekst die eigenljk aangepast/vervangen zou moeten worden door de tekst vanuit het formulier</p>';
$pattern = '#(<p id="dit".*>)(.*)(<\/p>)#s';
$replace = "$1moet dit worden$3";
$content = preg_replace( $pattern, $replace, $string );
echo '<p>pattern is <code>' . $pattern . '</code></p>' . PHP_EOL;
echo '<p>string is : ' . $string . '</p>' . PHP_EOL;
echo '<p>replace is : ' . $replace . '</p>' . PHP_EOL;
echo '<p>content is : ' . $content . '</p>' . PHP_EOL;
?>
<hr />
<?php
// id is uniek en staat direct na p
$string = '<p id="dat" class="zusofzo">hier staat weer een andere tekst die moet worden vervangen</p>';
$pattern = '#(<p id="dat".*>)(.*)(<\/p>)#s';
$replace = "$1En daar komt dit voor in de plaats.$3";
$content = preg_replace( $pattern, $replace, $string );
echo '<p>pattern is <code>' . $pattern . '</code></p>' . PHP_EOL;
echo '<p>string is : ' . $string . '</p>' . PHP_EOL;
echo '<p>replace is : ' . $replace . '</p>' . PHP_EOL;
echo '<p>content is : ' . $content . '</p>' . PHP_EOL;
?>