Avatar billede alaflam Nybegynder
01. september 2005 - 08:59 Der er 9 kommentarer og
1 løsning

regular expression!

Hej,

Nu ved jeg ikke rigtige hvornår jeg begynder at forstå regular expression...men jeg prøver på at fange ALT tekst i en HTML file

<title>asd</tile><a href='grdr'>hej</a><div>aoisdj</div><img title="displays >" src="big.gif">yrdy

så har jeg til sidst "asd", "aoisdj", "yrdy" og "hej".

Har prøvet sådan men jeg ved ikke hvorfor det ikke virker :(
preg_match_all("/>($.)<\//is", $HTML, $matches);
preg_match_all("//is", $HTML, $matches);
Avatar billede nielle Nybegynder
01. september 2005 - 09:07 #1
Der er nogle fejl i din HTML-kode og det hjælper jo ikke på det.

Vil du have teksten i et array, eller er det nok at få den i en streng? Dette kan gøres sådan:

$str = "<title>asd</tile>
<a href='grdr'>hej</a>
<div>aoisdj</div>
<img title="displays" src="big.gif">yrdy";

$preg_replace("/<.*?>/gs", "", $str);
Avatar billede alaflam Nybegynder
01. september 2005 - 09:28 #2
jeg prøvede på at test din kode, jeg fik en fejl..

Unknown modifier 'g'
Avatar billede nielle Nybegynder
01. september 2005 - 09:33 #3
Jeg ville ellers have sværget på at den kendete g for global - nå men så må den jo bare fjernes.

$preg_replace("/<.*?>/s", "", $str);
Avatar billede alaflam Nybegynder
01. september 2005 - 09:42 #4
det virker slet ikke, jeg får bare det hele html + tekst så din kode laver ikke meget...

this work somehow...
preg_match_all( "/>(.+)*</isU", $HTML, $links);
Avatar billede nielle Nybegynder
01. september 2005 - 09:44 #5
Der er også gået et eller andet galt under nem cut-n-pase, for koden skulle have set sådan her ud:

$str = preg_replace("/<.*?>/s", "", $str);
Avatar billede alaflam Nybegynder
01. september 2005 - 09:47 #6
ok det virker meget bedre :)

men der er en lille fejl...alt javascript kode + tekst UDEN HTML får jeg med :(

 
function phpAds_findObj(n, d) {
  var p,i,x;  if(!d) d=document;
if((p=n.indexOf("?"))>0&&parent.frames.length) {
  d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&id.layers.length;i++)
x=phpAds_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}
function phpAds_adlayers_place_1eec23f6()
{
    var c = phpAds_findObj('phpads_1eec23f6');
    if (!c)
        return false;
    if (c.style)
        c = c.style;
    if (window.innerHeight)
        ih = window.innerHeight;
    else
        ih = document.body.clientHeight;
    if (window.innerWidth)
        iw = window.innerWidth;
    else
        iw = document.body.clientWidth;
    if (document.all && !window.innerWidth) {
        c.pixelLeft = 112 + document.body.scrollLeft - 106;
        c.pixelTop = 220 + document.body.scrollTop;
    } else {
        c.left = iw + window.pageXOffset - 106 - 16;
        c.top = 0 + window.pageYOffset;
    }
    c.visibility = phpAds_adlayers_visible_1eec23f6;
}
function phpAds_simplepop_1eec23f6(what)
{
    var c = phpAds_findObj('phpads_1eec23f6');
    if (!c)
        return false;
    if (c.style)
        c = c.style;
    switch(what)
    {
        case 'close':
            phpAds_adlayers_visible_1eec23f6 = 'hidden';
            phpAds_adlayers_place_1eec23f6();
            window.clearInterval(phpAds_adlayers_timerid_1eec23f6);
            break;
        case 'open':
            phpAds_adlayers_visible_1eec23f6 = 'visible';
            phpAds_adlayers_place_1eec23f6();
            phpAds_adlayers_timerid_1eec23f6 =
window.setInterval('phpAds_adlayers_place_1eec23f6()', 50);
            return window.setTimeout('phpAds_simplepop_1eec23f6(\'close\')',
9000000000);
            break;
    }
}
var phpAds_adlayers_timerid_1eec23f6;
var phpAds_adlayers_visible_1eec23f6;
phpAds_simplepop_1eec23f6('open');
Avatar billede alaflam Nybegynder
01. september 2005 - 09:48 #7
giv mig et svar jeg har løst problemet :)
Avatar billede nielle Nybegynder
01. september 2005 - 09:53 #8
Ja, det indgik jo sådan set heller ikke i den oprindelige opgave at JavaScript skulle sorteres fra. ;^)

Disee to linjer kode skulle kunne gøre tricket:

$str = preg_replace("!<script.*?</script>!is", "", $str);
$str = preg_replace("!<.*?>!s", "", $str);
Avatar billede nielle Nybegynder
01. september 2005 - 09:53 #9
... og et svar :^)
Avatar billede alaflam Nybegynder
01. september 2005 - 09:54 #10
tak :)
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