|
| Fjern indmaden fra <P> tags Fra : Thïngmand |
Dato : 13-03-01 17:50 |
|
Jeg har noget text med HTML koder som jeg skal have igennem en PHP kværn for
at fjerne uønskede tags og lignende.
Jeg vil dog gerne beholde nogle kommandoer som er i P tags, nemlig <P
align=right>, <P align=center> og <P align=left>
Men alt andet der måtte stå i P tag'et skal altså fjernes (såsom STYLE)
<P STYLE=lala ANDET="blabla" align=right TREDJE="lksdl">
skal altså blive til
<P align=right>
Hvordan gør jeg det?
| |
Thomas Jespersen (14-03-2001)
| Kommentar Fra : Thomas Jespersen |
Dato : 14-03-01 13:13 |
|
"Thïngmand" <michael@thingmand.dk> writes:
> Hvordan gør jeg det?
Jeg tænkte på om du kunne bruge XML Parseren til det
http://www.php.net/manual/en/ref.xml.php
Den ville sikkert få problemer med nogle tomme elementer såsom <br> og
<hr> eller implicit afsluttede element som <p> uden </p>. Hvis du vil
bruge XML parseren er det sikkert en ide hvis dine dokumenter er XHTML
istedet for HTML (det er dog et problem hvis du allerede har en stor
mængde HTML-dokumenter der skal omskrives til XHTML).
Hvis du vælger XHTML vejen er det en god ide at følge anvisningerne
på:
http://www.w3.org/TR/xhtml1/#guidelines
PS Jeg er ikke klar over om der findes en tredje-parts html-parser til
PHP men hvis der gør, vil den direkte kunne løse dit problem
| |
Thïngmand (14-03-2001)
| Kommentar Fra : Thïngmand |
Dato : 14-03-01 14:27 |
|
> Jeg tænkte på om du kunne bruge XML Parseren til det
> http://www.php.net/manual/en/ref.xml.php
Det jeg skal bruge er en streng til preg_replace()
Jeg får fint fjernet andre koder, men jeg kan ikke lige greje løsning på kun
at fjerne noget indmad fra <P>. Oprindeligt brugte jeg "/<P[^>]+>/i" - men
så kom jeg i tanke om <P align="right">!!
Nogle der kan hjælpe?
| |
Thomas Jespersen (14-03-2001)
| Kommentar Fra : Thomas Jespersen |
Dato : 14-03-01 14:47 |
|
"Thïngmand" <michael@thingmand.dk> writes:
> Det jeg skal bruge er en streng til preg_replace()
Ok, men du kan ikke parse html med regulære udtryk, så der vil
muligvis komme underlige resultater en gang imellem.
| |
Gainsbourg (14-03-2001)
| Kommentar Fra : Gainsbourg |
Dato : 14-03-01 22:29 |
|
[snip]
> Den ville sikkert få problemer med nogle tomme elementer såsom <br> og
> <hr> eller implicit afsluttede element som <p> uden </p>. Hvis du vil
> bruge XML parseren er det sikkert en ide hvis dine dokumenter er XHTML
> istedet for HTML (det er dog et problem hvis du allerede har en stor
> mængde HTML-dokumenter der skal omskrives til XHTML).
[snip]
Sidder og funderer over, hvad forskellen på HTML og XHTML egentlig er - og
om XHTML er det samme som XML.
Mvh. Lïu
| |
Jakob Andersen (14-03-2001)
| Kommentar Fra : Jakob Andersen |
Dato : 14-03-01 22:35 |
|
"Gainsbourg" <isl41688@image.dk> wrote
> Sidder og funderer over, hvad forskellen på HTML og XHTML egentlig er - og
> om XHTML er det samme som XML.
XHTML kan kaldes et mellemstadie mellem XML og HTML...
Et par ting som man SKAL gøre i XHTML er:
1) Skrive <tags> med småt.
2) Lukke alle tags f.eks. også <br> og <img>
Disse ting skal man også i XML, så derfor er det rart at få banket det ind.
--
Jakob Andersen
| |
Dennis Skærup Højlun~ (14-03-2001)
| Kommentar Fra : Dennis Skærup Højlun~ |
Dato : 14-03-01 22:52 |
| | |
Thomas L. Kjeldsen (15-03-2001)
| Kommentar Fra : Thomas L. Kjeldsen |
Dato : 15-03-01 13:38 |
|
Dennis Skærup Højlund Andersen wrote:
>Jakob Andersen wrote:
>
>>XHTML kan kaldes et mellemstadie mellem XML og HTML...
>[snip]
>
>Vil man have den lange forklaring (på engelsk):
><url: http://www.w3.org/TR/xhtml1/>
Jeg kan anbefale at købe en bog om emnet, hvis man er interesseret.
W3C's recommendations er ganske tørt læsestof IMHO.
XML er et Markup Language hvori man kan definere nye markup languages.
XHTML er et markup language defineret i XML, og er dermed underlagt
XML's rare krav om at ml'en skal være well-formed (fx at tags _skal_
afsluttes) mm.
XHTML er lavet med henblik på at det skal kunne læses af de mest
udbredte browsere pt (sandsynligvis generation 4 - jeg kan ikke helt
huske det) og ligner derfor meget HTML4. Fordelen ved XHTML er at det
kan parses som XML og at nutidens browsere kan læse det som HTML.
XHTML er et nødvendigt springbræt indtil XML-browsere bliver
udbredt.
....correct me if I am wrong...
/tlk
| |
Jakob Andersen (15-03-2001)
| Kommentar Fra : Jakob Andersen |
Dato : 15-03-01 13:46 |
|
"Thomas L. Kjeldsen" <tlk@tigerdyr.lyngbol.dk> wrote
> ...correct me if I am wrong...
Okay..
> Jeg kan anbefale at købe en bog om emnet, hvis man er interesseret.
> W3C's recommendations er ganske tørt læsestof IMHO.
Der findes da ikke noget bedre end at læse det direkte fra kilden, istedet
for at en eller anden har forpestet standarderne med hans subjektive
holdninger.
--
Jakob Andersen
| |
Thomas L. Kjeldsen (15-03-2001)
| Kommentar Fra : Thomas L. Kjeldsen |
Dato : 15-03-01 14:17 |
|
Jakob Andersen wrote:
>"Thomas L. Kjeldsen" <tlk@tigerdyr.lyngbol.dk> wrote
>> ...correct me if I am wrong...
>
>Okay..
quotefucker.
>Der findes da ikke noget bedre end at læse det direkte fra kilden, istedet
>for at en eller anden har forpestet standarderne med hans subjektive
>holdninger.
det er selvfølgelig en holdning...
/tlk
| |
Jakob Andersen (15-03-2001)
| Kommentar Fra : Jakob Andersen |
Dato : 15-03-01 14:39 |
|
"Thomas L. Kjeldsen" <tlk@tigerdyr.lyngbol.dk> wrote
> quotefucker.
Så så...
> det er selvfølgelig en holdning...
Som faktisk ofte holder, mange forfattere har det med at lave quick'n'dirty
løsninger i deres bøger.¨
--
Jakob Andersen
| |
Thomas Jespersen (15-03-2001)
| Kommentar Fra : Thomas Jespersen |
Dato : 15-03-01 16:55 |
|
"Jakob Andersen" <jakob@andersen.as> writes:
>
> Der findes da ikke noget bedre end at læse det direkte fra kilden, istedet
> for at en eller anden har forpestet standarderne med hans subjektive
> holdninger.
Tja, jeg vil personligt anbefale Tim Brays kommenterede udgave af
standarden:
http://www.xml.com/axml/testaxml.htm
| |
Jakob Andersen (15-03-2001)
| Kommentar Fra : Jakob Andersen |
Dato : 15-03-01 17:04 |
|
"Thomas Jespersen" <thomas@daimi.au.dk> wrote
> Tja, jeg vil personligt anbefale Tim Brays kommenterede udgave af
> standarden:
> http://www.xml.com/axml/testaxml.htm
Jeps, den er glimragende (Har læst den), men svjv er der ikke noget
tilsvarende om XHTML
--
Jakob Andersen
| |
Jakob Andersen (15-03-2001)
| Kommentar Fra : Jakob Andersen |
Dato : 15-03-01 17:04 |
|
"Thomas Jespersen" <thomas@daimi.au.dk> wrote
> Tja, jeg vil personligt anbefale Tim Brays kommenterede udgave af
> standarden:
> http://www.xml.com/axml/testaxml.htm
Jeps, den er glimragende (Har læst den), men svjv er der ikke noget
tilsvarende om XHTML
--
Jakob Andersen
| |
Dennis Skærup Højlun~ (15-03-2001)
| Kommentar Fra : Dennis Skærup Højlun~ |
Dato : 15-03-01 15:30 |
|
Thomas L. Kjeldsen wrote:
>><url: http://www.w3.org/TR/xhtml1/>
>Jeg kan anbefale at købe en bog om emnet, hvis man er interesseret.
>W3C's recommendations er ganske tørt læsestof IMHO.
[snip]
>...correct me if I am wrong...
Jeg synes ikke ovenstående URL er W3's værst læselige. Den er
kortfattet, og beskriver hvad, hvorfor og hvordan. Kan læses meget
hurtigt - også uden at virke tør.
Men det er selvfølgelig også bare min mening
--
Dennis Skærup Højlund Andersen
http://dennisandersen.dk
| |
Jonathan Stein (14-03-2001)
| Kommentar Fra : Jonathan Stein |
Dato : 14-03-01 14:39 |
|
"Thïngmand" wrote:
> Jeg har noget text med HTML koder som jeg skal have igennem en PHP kværn for
> at fjerne uønskede tags og lignende.
>
> Jeg vil dog gerne beholde nogle kommandoer som er i P tags, nemlig <P
> align=right>, <P align=center> og <P align=left>
Prøv at kigge på preg_replace med "e" modifier - der kan du udføre PHP-kode på
replace-udtrykket. Et ret stærkt værktøj. F.eks. kan du matche "/<p( [^>]+)>/e"
og replace med '"<p" + find_align_string(\\1) + ">"'.
Funktionen find_align_string overlades til læseren...
M.v.h.
Jonathan
| |
Thïngmand (14-03-2001)
| Kommentar Fra : Thïngmand |
Dato : 14-03-01 14:51 |
|
> med "e" modifier -
Hvad betyder "e" modifier?
Findes der ikke en side hvor man kan læse om alle de udtryk/funktioner man
kan bruge ved replace i PHP? Jeg syntes ikke at manualen giver ret meget...
| |
Jonathan Stein (14-03-2001)
| Kommentar Fra : Jonathan Stein |
Dato : 14-03-01 22:33 |
|
"Thïngmand" wrote:
> > med "e" modifier -
>
> Hvad betyder "e" modifier?
Perl-udtryk skrives normalt mellem skråstreger - f.eks. /<p>/ og modifiers
kommer efter sidste skråstreg - f.eks. /<p>/i ignorer case, så udtrykket også
finder <P>.
"e" får replacefunktionen til at opfatte replacestrengen som kode, der skal
udføres.
> Findes der ikke en side hvor man kan læse om alle de udtryk/funktioner man
> kan bruge ved replace i PHP? Jeg syntes ikke at manualen giver ret meget...
I min off-line manual har jeg en side om "Perl-compatible Regular Expression
functions" (ref.pcre.html) - den kan sikkert også findes i en on-line manual.
http://www.php.net/
M.v.h.
Jonathan
| |
Nezar Nielsen (14-03-2001)
| Kommentar Fra : Nezar Nielsen |
Dato : 14-03-01 16:26 |
|
"Thïngmand" <michael@thingmand.dk> skrev i en meddelelse
news:cbsr6.11327$uQ5.621064@news010.worldonline.dk...
> Jeg har noget text med HTML koder som jeg skal have igennem en PHP kværn
for
> at fjerne uønskede tags og lignende.
>
> Jeg vil dog gerne beholde nogle kommandoer som er i P tags, nemlig <P
> align=right>, <P align=center> og <P align=left>
>
Hejsa, prøv noget i stil med:
<?php
function findalign($s=''){
if(preg_match("/(\s?align=\"?(left|right|center)\"?\s?)/i",$s,$match)){
$s=$match[1];
}
return '<p'.$s.'>';
}
$str=preg_replace("/<p([^>]+)>/ie","findalign(\"\\1\")",$str);
?>
hvor du har den streng der skal ændres i $str. (eksempel kan ses på
http://linux.control.dk/test.php )
Hvordan du så får det til at spille sammen med at resten af html-tagsene
skal fjernes, det er en anden sag..
--
Mvh. Nezar Nielsen
| |
|
|