Avatar billede mstorgaard Praktikant
08. januar 2006 - 13:34 Der er 16 kommentarer og
1 løsning

Få php til at tælle antal div i en anden fil

Jeg har en side hvor jeg gerne vil føre lidt statistik. Jeg vil derfor gerne have et php-script der kan tælle antal <div id="x"> i en anden fil. Hvordan gør jeg det?
Avatar billede hmortensen Nybegynder
08. januar 2006 - 13:56 #1
En mulighed:
$content = file_get_contents("fil.php");
$antal = substr_count($content, '<div id="');
Avatar billede mstorgaard Praktikant
08. januar 2006 - 14:17 #2
Hvad skriver jeg så der hvor jeg vil have den sat ind? Altså <?php $antal ?> eller .. ?
Avatar billede hmortensen Nybegynder
08. januar 2006 - 14:18 #3
echo $antal;
Avatar billede mstorgaard Praktikant
08. januar 2006 - 14:33 #4
Og så lige et tillægsspørgsmål, hvis jeg må; hvordan finder man gennemsnittet af en række tal fra en anden fil? Muligvis også ved at bruge <div>, men hvordan lyder koden?
Avatar billede hmortensen Nybegynder
08. januar 2006 - 14:35 #5
Hvordan står tallene ?
Avatar billede mstorgaard Praktikant
08. januar 2006 - 14:42 #6
De står med en del teksts mellemrum. Kan man ikke bare sætte en div på hver side og få den til at regne det ud?
Avatar billede mstorgaard Praktikant
09. januar 2006 - 18:12 #7
Er det noget nogen kan hjælpe mig med? Altså sådan så jeg kan regne gennemsnittet ud på nogle tal
Avatar billede rednex Nybegynder
09. januar 2006 - 18:14 #8
Lad mig lige checke at jeg har forstået det rigtigt. Du har en fil hvor du angiver nogle tal som f.eks. <div id="x">27</div>. Du vil nu gerne regne gennemsnittet ud af alle tallene på siden?
Avatar billede mstorgaard Praktikant
09. januar 2006 - 18:46 #9
Ja
Avatar billede rednex Nybegynder
09. januar 2006 - 18:49 #10
Så skulle det her kunne klare ærterne:

<?php

$text = '
Dette er noget tekst med <div id="x">27</div> tal imellem.
Andre tal kunne være <div id=\'x\'>12</div>, <div id=x>19</div> og så videre.
';

$regexp = "/<div id=('|\")?x('|\")?>([0-9]+)<\/div>/is";
$matches = array();

preg_match_all($regexp, $text, $matches);

echo array_sum($matches[3]) / count($matches[3]);

?>
Avatar billede mstorgaard Praktikant
09. januar 2006 - 19:23 #11
Koden skal være sådan at den kan tage flere divs fra en anden fil og finde gennemsnittet..
Avatar billede rednex Nybegynder
09. januar 2006 - 19:36 #12
Jeg troede du kunne klare resten selv, men ok. Her er en modificeret version der henter indholdet af en fil i stedet:

<?php

$text = file_get_contents("fil.php");

$regexp = "/<div id=('|\")?x('|\")?>([0-9]+)<\/div>/is";
$matches = array();

preg_match_all($regexp, $text, $matches);

$gennemsnit = array_sum($matches[3]) / count($matches[3]);

echo "Gennemsnittet er $gennemsnit";

?>
Avatar billede mstorgaard Praktikant
09. januar 2006 - 19:48 #13
Jeg forstår ikke helt koden, så jeg fik det til at virke ved at bruge det script som hmortensen lavede.

Så desværre rednex, jeg kan ikke bruge din løsning, men jeg vil give dig en del af pointene for dit forsøg :)

hmortensen; lig lige et svar
Avatar billede rednex Nybegynder
09. januar 2006 - 19:57 #14
Det er fint nok. Bare giv dem til hmortensen :o)
Avatar billede mstorgaard Praktikant
09. januar 2006 - 19:58 #15
Ok :)

Så venter jeg bare på en besvarelse ;)
Avatar billede mstorgaard Praktikant
12. januar 2006 - 17:35 #16
hmortensen, ligger du et svar?
Avatar billede hmortensen Nybegynder
12. januar 2006 - 19:30 #17
Svar :)
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