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!
Annonceindlæg fra Computerworld it-jobbank
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)
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..
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.
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å?">
jaa, så gættede jeg rigtigt :]
Ja, men det hele ligger jo i $dig[kildekode] ..
29. juni 2005 - 20:41
#10
så den skal faktisk første henter $dig[kildekode] også finde sætningen også udskrive dem i arrays!
29. juni 2005 - 20:41
#11
hente *
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)
29. juni 2005 - 20:42
#13
$tags er et array, print_r() bruges til at udskrive arrays på en pæn måde ;)
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>"; ?>
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)
29. juni 2005 - 20:48
#16
btw, hvis du bruger htmlentities() vil min preg_match aldrig passe, da < jo så vil være < og > være >
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
29. juni 2005 - 20:51
#18
niks, den udskriver præsic samme måde som udtrækningen, den giver bare intet resultat!
29. juni 2005 - 20:51
#19
den vil udskrive det som jeg har skrevet i 20:50:23
29. juni 2005 - 20:54
#21
Ja, men det skal bruges jo.
29. juni 2005 - 20:54
#22
all right, har lavet det. smid svar =)
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?
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.
29. juni 2005 - 20:57
#25
Lavede: $i = rand(0,count($tags)-1); echo $tags[$i]; smid svar =)
29. juni 2005 - 20:57
#26
svar kommer her. Jo smider lige en radomizer på
29. juni 2005 - 20:58
#27
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" ? :\
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.
Vi tilbyder markedets bedste kurser inden for webudvikling