Avatar billede cmau Nybegynder
19. november 2006 - 20:09 Der er 7 kommentarer og
1 løsning

Find teksten i mellem

Hejsa

Jeg har noget fast htmlstruktur hvor teksten skifter mellem mine tags. Som det her:
<a href="java script:toggle('daen_0');void(0);" style="text-decoration:none;color:black"><img src="/gfx/li_arrow.gif" alt="" style="border:none;margin-right:8px">forstå  (Dansk-Engelsk)</a>
<a href="java script:toggle('daen_0');void(0);" style="text-decoration:none;color:black"><img src="/gfx/li_arrow.gif" alt="" style="border:none;margin-right:8px">asd (Engelsk-Dansk)</a>

Hvordan kan jeg via php få fat på det der står mellem <a href="java script:toggle('daen_0');void(0);" style="text-decoration:none;color:black"><img src="/gfx/li_arrow.gif" alt="" style="border:none;margin-right:8px"> og </a>, altså i første tilfælde forstå  (Dansk-Engelsk) og andet tilfælde asd (Engelsk-Dansk.
Avatar billede masik7 Nybegynder
19. november 2006 - 21:29 #1
Hvis du vil have fat i det, kan du vel skrive:
preg_match("/<a href=\"java script:toggle('daen_0');void(0);\" style=\"text-decoration:none;color:black\"><img src=\"\/gfx\/li_arrow.gif\" alt=\"\" style=\"border:none;margin-right:8px\">(.*)</a>/", "<a href=\"java script:toggle('daen_0');void(0);\" style=\"text-decoration:none;color:black\"><img src=\"\/gfx\/li_arrow.gif\" alt=\"\" style=\"border:none;margin-right:8px\">Hej Hej</a>", $reg);

$str=$reg[1];

Så vil $str inde holde "Hej Hej"
Avatar billede cmau Nybegynder
19. november 2006 - 23:07 #2
Får fejl:

Warning: preg_match() [function.preg-match]: Unknown modifier 'a' in /customers/woox.dk/woox.dk/httpd.www/ordbogen/index.php on line 10

Kode

<?
if(!empty($_GET['word'])) {
    $url = 'http://www.domæne.dk/index.php?word='.$_GET['word'];
    $handle = fopen($url, "rb");
    $contents = '';
    while (!feof($handle)) {
        $contents .= fread($handle, 8192);
    }
    fclose($handle);
    preg_match("/<a href=\"java script:toggle('daen_0');void(0);\" style=\"text-decoration:none;color:black\"><img src=\"\/gfx\/li_arrow.gif\" alt=\"\" style=\"border:none;margin-right:8px\">(.*)</a>/", $contents, $reg);

$str=$reg[1];
echo $str;
}
?>
Avatar billede pidgeot Nybegynder
19. november 2006 - 23:11 #3
Der mangler lige en backslash før skråstregen i </a> i den første parameter til preg_match.

*væk igen*
Avatar billede cmau Nybegynder
20. november 2006 - 13:24 #4
Den skriver ingen fejl, men den kan ikke hente teksten med denne kode:
Se på http://woox.dk/ordbogen/
<?
//if(!empty($_GET['word'])) {
    //$url = 'http://www.ordbogen.com/opslag.php?dict=auto&word='.$_GET['word'];
    $contents = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

    <a  style="text-decoration:none;font-weight:bold;color:black">Der blev fundet 1 post i Dansk-engelsk / engelsk-dansk:</a><br>
<div style="padding:4px;font-size:12px;">
<div style="padding-bottom:8px"><a href="java script:toggle(daen_0);void(0);" style="text-decoration:none;color:black"><img src="/gfx/li_arrow.gif" alt="" style="border:none;margin-right:8px">forstå  (Dansk-Engelsk)</a><div id="daen_0" style="padding-top:5px;padding-bottom:10px;padding-left:20px;line-height:20px;"><
</div>
</div>
</div>   
<br>
';
    //$handle = fopen($url, "rb");
    //$contents = '';
    //while (!feof($handle)) {
    //    $contents .= fread($handle, 8192);
    //}
    //fclose($handle);
    preg_match("/<a href=\"java script:toggle('daen_0');void(0);\" style=\"text-decoration:none;color:black\"><img src=\"\/gfx\/li_arrow.gif\" alt=\"\" style=\"border:none;margin-right:8px\">(.*)<\/a>/", $contents, $reg);

echo "<pre>";
print_r($reg);

$str = $reg['1'];
echo 'Du søgte efter: '.$_GET['word'].'<br>Det gav følgende resultat: '.$str.' og '.$reg.'<hr>';
echo $contents;
//}
?>
Avatar billede masik7 Nybegynder
20. november 2006 - 18:22 #5
Hmm, prøv:
preg_match("/(<a href=\"java script:toggle('daen_0');void(0);\" style=\"text-decoration:none;color:black\"><img src=\"\/gfx\/li_arrow.gif\" alt=\"\" style=\"border:none;margin-right:8px\">(.*)<\/a>)+/", $contents, $reg);
echo "<pre>";
print_r($reg);

$str = $reg['2'];
echo 'Du søgte efter: '.$_GET['word'].'<br>Det gav følgende resultat: '.$str.' og '.$reg.'<hr>';
echo $contents;
Avatar billede cmau Nybegynder
23. november 2006 - 16:14 #6
Fik det til at virke. Smider du svar? Hmm men hvordan kan man logge in på en side via php? Så der starter en session.
Avatar billede masik7 Nybegynder
23. november 2006 - 19:27 #7
Svar ;)

Så hvis man har skrevet en rigtig kode, sætter man en session til noget, den er hvis man er logget ind. Så tjekker man jo bare om den session er der, hvis er er man logget ind, ellers ikke.
Eller noget i den retning.
Avatar billede masik7 Nybegynder
23. november 2006 - 19:30 #8
Prøver igen:
Så hvis man har skrevet en rigtig kode, sætter man en session til noget, den er hvis man er logget ind. Så tjekker man jo bare om den session er der, hvis den er der, er man logget ind, ellers ikke.
Eller noget i den retning.
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