Avatar billede gf Nybegynder
10. juli 2006 - 20:17 Der er 9 kommentarer og
1 løsning

Hjælp til preg_match

Hej jeg har følgende liste der logger i variablen $_POST[contnt]
Jeg vil gerne "udtrække" alle navnene og anvender scriptet nederst, men jeg kan ikke få det til at funke, er der nogen der kan hjælpe?

mvh gf

<UL class="sortable boxy" id=right_col>
  <li id="navn" >Peter pedal</li>
  <li id="navn" >bamse</li>
  <li id="navn" >lycky luke</li>
</UL>


<?php


$a = $_POST[contnt];
preg_match_all('/<li id="navn" >(.*?)<\/li>/',$a,$b,PREG_SET_ORDER);
reset($b);
while (list($x,$y)=each($b)) {
  print " ".htmlentities($y[1])."<br>\n";
}
Avatar billede gizmo-gizmo Nybegynder
10. juli 2006 - 20:52 #1
Hvad med:

$a = $_POST['contnt'];
preg_match_all('/<li id="navn" >(.*?)<\/li>/',$a,$b);
foreach($b[1] as $val)
{
  echo $val . "<br>";
}
Avatar billede gf Nybegynder
10. juli 2006 - 21:18 #2
hej gizmo-gizmo

din løsning giver heller ikke noget output.

mvh gf
Avatar billede gf Nybegynder
10. juli 2006 - 21:21 #3
her er mit test script:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<head>
    <title>Untitled</title>
    <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
    <!--
    function mySubmit(){
      document.frm.content.value = document.all['right_col'].innerHTML;
      document.frm.submit();
    }
    //-->
    </SCRIPT>
</head>
<body>
<UL class="sortable boxy" id=right_col>
  <li id="navn" >Peter pedal</li>
  <li id="navn" >bamse</li>
  <li id="navn" >lycky luke</li>
</UL>
<form action="ny.php" method="post" name="frm">
<input type="hidden" name="content"><br>
<input type="button" onclick="mySubmit();" value="submit">
</form>
<?php
$a = $_POST['content'];
preg_match_all('/>(.*?)<\/li>/',$a,$b);
foreach($b[1] as $val)
{
  echo $val . "<br>";
}
?>
</body>
</html>
Avatar billede gf Nybegynder
10. juli 2006 - 21:22 #4
prem_match linien skal være:

preg_match_all('/<li id="navn" >(.*?)<\/li>/',$a,$b);
Avatar billede gizmo-gizmo Nybegynder
10. juli 2006 - 21:32 #5
Prøv med den her php kode i stedet:

<?php
$a = $_POST['content'];
preg_match_all("/<li[^>]*>(.*?)<\/li>/i",$a,$b);
foreach($b[1] as $val)
{
  echo $val . "<br>";
}
?>
Avatar billede gf Nybegynder
10. juli 2006 - 21:40 #6
din sidste kode udskriver kun den sidste i listen => lycky luke

mvh gf
Avatar billede gizmo-gizmo Nybegynder
10. juli 2006 - 21:55 #7
Det virker fint her. Altså med den kode du postede 21:21:28, bare hvor php-delen er skiftet ud med 21:32:52
Avatar billede gf Nybegynder
10. juli 2006 - 22:25 #8
Jeg forstår ingenting. Med den konstalation du beskriver får jeg kun udskrevet: lycky luke.

kan det være noget i php opsætningen?

mvh gf
Avatar billede gf Nybegynder
10. juli 2006 - 23:40 #9
Jeg har nu testet koden på 3 forskellige servere og kan stadig ikke fy udskrevet andet end:

lysky luke

jeg skulle gerne have udskrevet:

  Peter pedal
  bamse
  lycky luke

nogen forslag? koden jeg anvender er her under

mvh gf

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<head>
    <title>Untitled</title>
    <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
    <!--
    function mySubmit(){
      document.frm.content.value = document.all['right_col'].innerHTML;
      document.frm.submit();
    }
    //-->
    </SCRIPT>
</head>
<body>
<UL class="sortable boxy" id=right_col>
  <li id="navn">Peter pedal</li>
  <li id="navn">bamse</li>
  <li id="navn">lycky luke</li>
</UL>
<form action="ny.php" method="post" name="frm">
<input type="hidden" name="content"><br>
<input type="button" onclick="mySubmit();" value="submit">
</form>
<?php
$a = $_POST['content'];
preg_match_all("/<li[^>]*>(.*?)<\/li>/i",$a,$b);
foreach($b[1] as $val)
{
  echo $val . "<br>";
}
?>
</body>
</html>
Avatar billede gf Nybegynder
11. juli 2006 - 14:31 #10
jeg har fundet ud af, at indholdet af $_post['content'] rent faktisk ser lidt anderledes ud. jeg opretter et nyt spørgsmål da jeg ikke vil belemre dig mere.

tak for hjælpen
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