/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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

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/>

--
Dennis Skærup Højlund Andersen
http://dennisandersen.dk

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




Søg
Reklame
Statistik
Spørgsmål : 177508
Tips : 31968
Nyheder : 719565
Indlæg : 6408575
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste