Avatar billede net-city Nybegynder
29. juni 2005 - 19:34 Der er 28 kommentarer og
1 løsning

Finde det mellem " og "

Hejsa, når jeg hiver noget ud fra databasen skal den finder alt det som står i mellem:
<param name="tagwall" value="ALT SOM STÅR HER">

-- og slette | som den skifter imellem beskederne.
fx.
Hejsa med dig peter|hvordan går det|fed side!!!

-- gerne sætte det ind i en array som jeg senere kan hive ud fra, men det behøves ikke!
Avatar billede net-city Nybegynder
29. juni 2005 - 20:11 #1
..?
Avatar billede claus_joergensen Nybegynder
29. juni 2005 - 20:12 #2
Og du burde få dig en tålmodighed
- www.php.net/preg_match kan gøre det, såå igang med at lære regulære expressions :)
(og hvis du har mere tålmodgihed kan det jo være at nogen(mig) brygger et script sammen)
Avatar billede claus_joergensen Nybegynder
29. juni 2005 - 20:16 #3
Avatar billede net-city Nybegynder
29. juni 2005 - 20:32 #4
Ja, men den skal først finde sætningen, for den udtrækker meget meget mere fra databasen "$dig[kildekode]" hvor i <param name="tagwall" value="ALT SOM STÅR HER">
ligger..
Avatar billede claus_joergensen Nybegynder
29. juni 2005 - 20:35 #5
det forstod jeg intet af o.O , kan du ikke prøve at give et totalt output, og forklare nøjagtigt hvad der skal findes ?

<param> er forresten noget JAVA Applet fis :) men det er du vel klar over.
Avatar billede net-city Nybegynder
29. juni 2005 - 20:38 #6
Ja, det er jeg.
Vi siger jeg indsætter dette i databasen.

<!--- dette -->
Hjda djahdja hdjahd hajsdjashdj hasjdasdhasd
asd34 2342 4234324324
asd asd 32432 443234
asdasdasdasdasd
adasdasdasdasd
<param name="tagwall" value="Hejsa!|Hvad så?">

<!-- slut dette -->

så skal den ved udtrækket FINDE linjen <param name="tagwall" value="Hejsa!|Hvad så?">
Avatar billede claus_joergensen Nybegynder
29. juni 2005 - 20:38 #7
Hvis du mener at du har flere <param>'s så kig igen på http://www.thedeathart.dk/diverse/paramexp.php
Avatar billede claus_joergensen Nybegynder
29. juni 2005 - 20:39 #8
jaa, så gættede jeg rigtigt :]
Avatar billede net-city Nybegynder
29. juni 2005 - 20:40 #9
Ja, men det hele ligger jo i $dig[kildekode] ..
Avatar billede net-city Nybegynder
29. juni 2005 - 20:41 #10
så den skal faktisk første henter $dig[kildekode] også finde sætningen også udskrive dem i arrays!
Avatar billede net-city Nybegynder
29. juni 2005 - 20:41 #11
hente *
Avatar billede claus_joergensen Nybegynder
29. juni 2005 - 20:41 #12
Så dkal du bare ændre

preg_match($pattern, $txt, $matches);

til

preg_match($pattern, $dig['klidekode'], $matches);

(husk at det er foo['bar'] ikke foo[bar] , quotes er vigtige)
Avatar billede claus_joergensen Nybegynder
29. juni 2005 - 20:42 #13
$tags er et array, print_r() bruges til at udskrive arrays på en pæn måde ;)
Avatar billede net-city Nybegynder
29. juni 2005 - 20:47 #14
hos mig udskriver den
Array
(
    [0] =>
)


Selvom der er noget i tagwall!

se her.

<?php
include("db.php");
$ip = $_SERVER["REMOTE_ADDR"];
$ok = mysql_query("select * from tsk WHERE ip = '$ip'");
$dig = mysql_fetch_array($ok);

$mystring = htmlentities($dig["kildekode"]);

$pattern = "/<param name=\"tagwall\" value=\"(.*)\">/";
preg_match($pattern, $mystring, $matches);

$tags = explode("|",$matches[1]);

echo "<pre>";
print_r($tags);
echo "</pre>";
echo "<hr>";
?>
Avatar billede claus_joergensen Nybegynder
29. juni 2005 - 20:48 #15
prøv lige at echo $mystring, og smide den herind (så kan jeg også være med i debugging)
Avatar billede claus_joergensen Nybegynder
29. juni 2005 - 20:48 #16
btw, hvis du bruger  htmlentities() vil min preg_match aldrig passe, da < jo så vil være &lt; og > være &gt;
Avatar billede net-city Nybegynder
29. juni 2005 - 20:50 #17
udskriver
<html>
<title>test</title>
</html>
<body>
<param name="tagwall" value="hej|ey|hvadså|hehe">
</body>
</html>


- Ved godt der mangler <applet .. > osv, men bare for at se om det virker
Avatar billede net-city Nybegynder
29. juni 2005 - 20:51 #18
niks, den udskriver præsic samme måde som udtrækningen, den giver bare intet resultat!
Avatar billede net-city Nybegynder
29. juni 2005 - 20:51 #19
den vil udskrive det som jeg har skrevet i 20:50:23
Avatar billede claus_joergensen Nybegynder
29. juni 2005 - 20:52 #20
http://www.thedeathart.dk/diverse/paramexp.php

Ser nu ud til at virke fint, under forudsætning at htmlentities() ikke er brugt :D
Avatar billede net-city Nybegynder
29. juni 2005 - 20:54 #21
Ja, men det skal bruges jo.
Avatar billede net-city Nybegynder
29. juni 2005 - 20:54 #22
all right, har lavet det. smid svar =)
Avatar billede net-city Nybegynder
29. juni 2005 - 20:55 #23
Kan du så oven i hatten lave sådan den laver en random med $tags ? med alt dens values?
Avatar billede claus_joergensen Nybegynder
29. juni 2005 - 20:57 #24
hvorfor dog ? Der er jo ingen ide i at ændre på indhold som bare skal parses.

du kan bruge htmlentities() EFTER preg_match er kørt igennem, eller aller bedst, lige før du udskriver værdien.
Avatar billede net-city Nybegynder
29. juni 2005 - 20:57 #25
Lavede:
$i = rand(0,count($tags)-1);
echo $tags[$i];

smid svar =)
Avatar billede claus_joergensen Nybegynder
29. juni 2005 - 20:57 #26
svar kommer her.

Jo smider lige en radomizer på
Avatar billede claus_joergensen Nybegynder
29. juni 2005 - 20:58 #27
Avatar billede net-city Nybegynder
29. juni 2005 - 21:02 #28
Hvis nu den "bare" skal finde linjen <param name="navne" value="noget herinde">
hvordan får jeg den så til og udskrive "noget herinde" ? :\
Avatar billede claus_joergensen Nybegynder
29. juni 2005 - 21:05 #29
$pattern = "/<param name=\"tagwall\" value=\"(.*)\">/";
preg_match($pattern, $mystring, $matches);

$pattern er et reg.exp pattern.

Hvis du vil have navne ændre du det bare til:

$pattern = "/<param name=\"navne\" value=\"(.*)\">/";
preg_match($pattern, $mystring, $matches);

og så får du et array ($matches) hvor du så nok skal bruge $matches[1];

Regulære Expressions er noget grusomt noget, men er magtfulde for dem som kan styre dem.
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