Versio

Functie over preg_replace resultaat.

Overzicht Reageren

Crispijn -

Crispijn -

23/04/2009 15:30:00
Quote Anchor link
Beste allemaal,

ik heb de volgende regel:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$content
= '<h2>Dit is kop 1</h2>
<p>Dit is tekst 1</p>

<h2>Dit is kop 2</h2>
<p>Dit is tekst 2</p>'
;

$content = preg_replace('#\<h2>(.+?)\</h2>#si', '<a href="#top"><'.$element.' id="\\1" name="\\1">\\1</'.$element.'></a>', $content);

echo $content;
?>


Dit werkt prima. Van alle h2 elementen wordt een link gemaakt etc. Nu wil ik echter dat er nog wat bewerkingen over het resultaat worden uitgevoerd. Spaties moeten worden vervangen door een - en alles moet lowercase worden uitgevoerd.

nu heb ik wat lopen spitten op php.net en ik kwam de volgende constructie tegen:

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
<?php
function toUrl($var){
    //deze functie uitbreiden zodat alles werkt zoals het moet...
    return strtolower(str_replace(' ', '-', $var));
}


$content = '<h2>Dit is kop 1</h2>
<p>Dit is tekst 1</p>

<h2>Dit is kop 2</h2>
<p>Dit is tekst 2</p>'
;

$content = preg_replace_callback('#\<h2>(.+?)\</h2>#si', 'toUrl', $content);

echo $content;
?>


Alleen ik krijg dit maar niet juist. Heeft iemand ervaring met deze handelingen?
Gewijzigd op 01/01/1970 01:00:00 door Crispijn -
 
PHP hulp

PHP hulp

24/05/2012 18:14:52
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
- SanThe -

- SanThe -

23/04/2009 15:32:00
Quote Anchor link
Zet dit bovenin je script.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>


$match bestaat niet.
 
Jesper Diovo

Jesper Diovo

23/04/2009 15:33:00
Quote Anchor link
http://www.phphulp.nl/php/scripts/11/1492/

Misschien kun je daar wat mee.
 
Jelmer rrrr

Jelmer rrrr

23/04/2009 17:48:00
Quote Anchor link
In $var zit een array met matches. $var[0] is de hele string die hij matcht, $var[1] is de submatch, dat wat tussen () stond, etc.
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
<?php
function toUrl($var){
    
    //deze functie uitbreiden zodat alles werkt zoals het moet...
    $link = strtolower(str_replace(' ', '-', $var[1])) . '.html';

    return sprintf('<h2><a href="%s">%s</a></h2>',
        $link,
        $var[1]);
}


$content = '<h2>Dit is kop 1</h2>
<p>Dit is tekst 1</p>

<h2>Dit is kop 2</h2>
<p>Dit is tekst 2</p>'
;

$content = preg_replace_callback('#\<h2>(.+?)\</h2>#si', 'toUrl', $content);

echo $content;
?>
 
Crispijn -

Crispijn -

28/04/2009 13:51:00
Quote Anchor link
Het heeft even geduurd voordat ik er mee verder kon maar het is zo ver:

Jelmer, je bent geweldig. Het probleem is opgelost! Dank je wel!
 



Overzicht Reageren