Avatar billede okidoky Nybegynder
24. september 2005 - 22:30 Der er 21 kommentarer og
1 løsning

regulær udtryk hjælp

Hejsa,

jeg har følgende link

<a href='[34]'>awddaw</a><td>adwdaw</td>

jeg vil gerne fjerne alle tags og behold
[34]awddaw adwdaw

Jeg prøver med følgende regulær udtryk.

array("@<style[^>]*?>.*?</style>@si",
"@<img[^>]*?>.*?</img>@si",
"@<title[^>]*?>.*?</title>@si",
"@<script[^>]*?>.*?</script>@si",
"@<[\/\!]*?[^<>]*?>@si",                       
"@<[\/\!]*?[^<>]*?@si",
"@[\/\!]*?[^<>]*?>@si",
);

men det fjerner alt og lader kun teksten tilbage, så har jeg mistet [34].
Avatar billede erikjacobsen Ekspert
24. september 2005 - 22:33 #1
Jeg forstår ikke helt dit problem.
1) Du vil fjerne noget med <a href...> men har også style, img osv
2) Det du har er ulovligt html, da man ikke kan have noget udenfor en <td> i en tabel.

Kan du forklare lidt nærmere?
Avatar billede okidoky Nybegynder
24. september 2005 - 22:35 #2
det jeg skriver er bare et eksemple.

jeg har en html side der indholder alt tags osv.

jeg vil gerne fjern alt undtagen beholde tekst og [indholder tal].
Avatar billede erikjacobsen Ekspert
24. september 2005 - 22:42 #3
Ok. Hvis $a indeholder din tekst, skulle denne lille sag klare det, som beskrevet i din sidste sætning:

print strip_tags(preg_replace('/<[^>]*(\[\d+\])[^>]*>/','$1',$a));
Avatar billede okidoky Nybegynder
24. september 2005 - 22:46 #4
hvad indholder $1 ?
Avatar billede erikjacobsen Ekspert
24. september 2005 - 22:48 #5
Den skal du ikke bekymre dig om - det er noget med PHP og regulære udtryk.
Avatar billede okidoky Nybegynder
24. september 2005 - 22:48 #6
ok jeg er med det er det der skal replaces :) jeg er ved at falde i søvn..

men jeg får jo talene nu uden [ ] med ?
Avatar billede erikjacobsen Ekspert
24. september 2005 - 22:53 #7
Giv et eksempel.
Avatar billede okidoky Nybegynder
24. september 2005 - 22:55 #8
vent, som jeg kan se får jeg slet ikke det der står i [34].

<a href='[34]'>

1. finder jeg alle links i html siden
2. indsætter dem i tablen, og henter ID
3. replace linket med id

str_replace($link, "[".$id."]", $html);

det er derfor den er vigtige [34].
Avatar billede erikjacobsen Ekspert
24. september 2005 - 22:58 #9
Jeg kan ikke løse dit problem, hvis du ikke er i stand til at forklare tydeligt hvad det er. Denne stump kode:


    $a="<a href='[34]'>awddaw</a><td>adwdaw</td>\n<a href='[34]'>awddaw</a><td>adwdaw</td>";

    print strip_tags(preg_replace('/<[^>]*(\[\d+\])[^>]*>/','$1',$a));

udskriver

    [34]awddawadwdaw
    [34]awddawadwdaw

som er det jeg forstår du vil have.
Avatar billede okidoky Nybegynder
24. september 2005 - 23:02 #10
jeg har altid været dårlig til at formulere mig selv... jeg ved ikke hvad der er galt...jeg synes selv jeg siger det som det er, men jeg ved ikke hvorfor folk har svært ved at forstå hvad jeg mener med tingene :(

kan jeg be om et svar...
Avatar billede erikjacobsen Ekspert
24. september 2005 - 23:05 #11
Jamen har du fået løst dit problem?

Det er altid godt at komme med fyldestgørende eksempler på det man vil opnå. Så kan man sikkert helt slippe for at forklare.

Jeg samler slet ikke på point, tak.
Avatar billede okidoky Nybegynder
24. september 2005 - 23:15 #12
$asd = <a href="empty"> Qoly jaay</a></span></font></td> <td width="6%" align="center" bordercolor="#FFFFFF" height="22"> <a href="[572]"> <img border="0" src="[:34:]" width="29" height="22"></a>;

når jeg kører det med preg_replace så skulle den printe sådan noget ud

Qoly yaay [572] [:34:]
Avatar billede erikjacobsen Ekspert
24. september 2005 - 23:21 #13
Med mit eksempel udskriver den

  Qoly jaay  [572]

som den skal. [:34:] skal den ikke udskrive da den ikke kun indeholder tal, som du skrev før.
Avatar billede okidoky Nybegynder
24. september 2005 - 23:26 #14
det var dog mærkeligt for jeg får det ikke printet det der ud med din kode ??
Avatar billede okidoky Nybegynder
24. september 2005 - 23:28 #15
ok grunden til jeg ikke fik [34] ud er fordi jeg skiftet $1 ud med '' ...
Avatar billede okidoky Nybegynder
24. september 2005 - 23:29 #16
jeg siger rigtige mange tak :)

jeg håber du stadigvæk underviser på datamatiker uddannelse i vi** :P
Avatar billede erikjacobsen Ekspert
24. september 2005 - 23:32 #17
Joh, det gjorde jeg da i fredags.
Avatar billede okidoky Nybegynder
24. september 2005 - 23:36 #18
mon der kommer en og vil gerne have point for at forklare $1 :P
Avatar billede erikjacobsen Ekspert
24. september 2005 - 23:38 #19
$1 svarer til det det står i (...) i det regulære udtryk.
Avatar billede coderdk Praktikant
24. september 2005 - 23:44 #20
$1, eller \\1 som det også kan skrives, er "gruppe nummer", tag dette udtryk: "/(<a href=['\"](.*?)['\"]>(.*?)<\/a>/i" - Hér er gruppe 0 hele udtrykket, gruppe 1 er det der står i href="herinde" og gruppe 2 er selve linket ;)
Avatar billede okidoky Nybegynder
24. september 2005 - 23:44 #21
hehe det fik jeg alligevel ikke fat :P

men det kan være jeg en dag gøre :) jeg siger igen mange tak forhjælpen
Avatar billede okidoky Nybegynder
08. oktober 2005 - 21:38 #22
asd
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