Avatar billede blackscorpion Nybegynder
01. april 2007 - 11:03 Der er 2 kommentarer og
1 løsning

udskifte tags fra mysql udtræk.

Hej E.

Jeg har i min database noget tekst med nogle eksempler, hvor eksemplet står omgivet af <xmp></xmp>, hvordan ville en regular expression se ud, som kan udskifte det med noget andet kode jeg har brug for ?

skal nemlig have smidt f.eks. <div class='xmp'> og </div> rundt om.

og så så også have skiftet koden inde i <xmp></xmp> så skriver koden, på lige fod med highlight_syntax()

Nogle bud ?
Avatar billede blackscorpion Nybegynder
01. april 2007 - 11:44 #1
Fandt denne på: http://dk2.php.net/manual/en/ref.strings.php

<?php

function get_string_between($string, $start, $end){
    $string = " ".$string;
    $ini = strpos($string,$start);
    if ($ini == 0) return "";
    $ini += strlen($start);   
    $len = strpos($string,$end,$ini) - $ini;
    return substr($string,$ini,$len);
}

$string = "this [suxmp]custom[/suxmp] function is useless [suxmp]Yes it is![/suxmp]!!";
echo get_string_between($string,"[suxmp]","[/suxmp]");
// must return "custom";
?>

men den stopper efter første hit, og kunne være rart hvis den kunne tjekke op mod et array så den kunne lave tags som f.eks. i phpBB med [url][/url] osv osv.
Avatar billede blackscorpion Nybegynder
01. april 2007 - 12:01 #2
har så fundet dette:

<?php
// The \\2 is an example of backreferencing. This tells pcre that
// it must match the second set of parentheses in the regular expression
// itself, which would be the ([\w]+) in this case. The extra backslash is
// required because the string is in double quotes.
$html = "<b>bold text</b><a href=howdy.html>click me</a>";
$html2 = "bold text[a href=howdy.html]click me[/a]";

//$html = htmlentities($html);

preg_match_all("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $html, $matches, PREG_SET_ORDER);

foreach ($matches as $val) {
    echo "matched: " . htmlentities($val[0]) . "<br>\n";
    echo "part 1: " . htmlentities($val[1]) . "<br>\n";
    echo "part 2: " . htmlentities($val[3]) . "<br>\n";
    echo "part 3: " . htmlentities($val[4]) . "<br>\n\n";
}
?>

hvordan skal den preg_match_all skal ud for at kigge efter [...] istedet for <...> ?
Avatar billede blackscorpion Nybegynder
01. april 2007 - 12:11 #3
lukker og prøver reg.exp :)
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