Anterialis Skrevet 5. april 2005 Del Skrevet 5. april 2005 (endret) Skal ha en nyheter side som har nyheter fra mange forskjellige dager slik som dette: Torsdag: Masse nye kråker i det store treet Fredag: En kråke mindre i dag, gitt. Lørdag: Kråka har kommet tilbake. Dette er da hele nyheter siden som er linket til på forsiden, men så vil jeg includere (på forsiden) den siste nyheten, som i dette tilfellet er "Torsdag: Masse nye kråker i det store treet". Jeg har da denne i en <p> tagg tenker jeg, og spørsmålet er da om det er mulig å kun includere dette på forsiden? Det må være php fordi når jeg oppdaterer nyhetersiden, så vil jeg at forsiden skal includere det jeg skrev sist. Gidder liksom ikke skrive det samme om igjen på forsiden. Skjønner dere hva jeg mener? Er newbie når det kommer til php koding, så ville vært supert om dere legger ved litt informasjon i koden hvor det står hva dere har gjort og hvorfor (dere behøver ikke gjøre det ) På forhånd takk EDIT: Eller noe som tar de første 15 orda og limer dem inn på forsiden og skriver "..." etter de orda. Endret 5. april 2005 av w3p Lenke til kommentar
Anterialis Skrevet 7. april 2005 Forfatter Del Skrevet 7. april 2005 Ingen forslag? Eller ingen som har sett innlegget? Lenke til kommentar
Nervetattoo Skrevet 7. april 2005 Del Skrevet 7. april 2005 Om du bare har en <p> på siden du skal ha inn så er det ganske enkelt: $file = file_get_contents("/path/til/fil.html"); // Leser filen til en string preg_match("/<p>[^<\/p>]*<\/p>/i", $fileContent, $news); // En regex som henter ut innholdet i første p, med taggene $news = $news[0]; // Fikse litt echo $news; // Skrive ut Verre er ikke det. Forutsetter at du kjører versjon 4.3+ Lenke til kommentar
Anterialis Skrevet 7. april 2005 Forfatter Del Skrevet 7. april 2005 (endret) fikk det ikke til å fungere. Har plass på start.no. i news fila: <div id="smallcaps">April 7, 2005 15:29</div> <h4>masse lur tekst her.</h4> siden hvor jeg vil ha dette inkludert: <?php $file = file_get_contents("news.php"); // Leser filen til en string preg_match("/<h4>[^<\/h4>]*<\/h4>/i", $fileContent, $news); // En regex som henter ut innholdet i første p, med taggene $news = $news[0]; // Fikse litt echo $news; // Skrive ut ?> fikk det ikke til å fungere :s ingen feilmeldinger men ingen ting kom opp. EDIT: eller at den tar med første 20 orda og hvis det er flere ord enn det så setter den ... med en link til hoved news siden... blir dette mye vanskeligere? Endret 7. april 2005 av w3p Lenke til kommentar
stiber Skrevet 8. april 2005 Del Skrevet 8. april 2005 Det er en feil i den regexen til Findus. [^<\/p>]* Vil ikke fungere etter tenkt hensikt her. Den forkaster alle avsnitt som inneholder blandt annet "p". Det den sier er at vi skal matche så lenge vi ikke har 0 eller flere av <, /, p eller >. Med andre ord sier den ikke at den skal matche alt som ikke er </p>, som var hensikten. For å få til det kan man skrive (?>(?!<\/p>).)* Enkelte websider lukker ikke <p> taggen men åpner bare en ny. Så for å være på den sikre siden så kan man skrive (?>(?!<\/?p>).)* så vil vi matche alt fram til neste åpne eller lukke tag. Ferdig regex: preg_match("/<p[^>]*>(?>(?!<\/?p[^>]*>).)+<\/?p[^>]*>/is",$fileContent,$news); Her er det også tatt høyde for at det kan være tildelt klasse eller annet inne i <p> taggene. Det finnes en enklere regex som vil fungere like bra, og den ser slik ut: preg_match("/<p[^>]*>.*?<\/?p[^>]*>/is",$fileContent,$news); Skal du bruke <h4> ville jeg ha gjort følgende: preg_match("/<h4>.*?<\/h4>/is",.....); Er ikke så ofte at folk tildeler klasser til <h*> tags, og de lukkes stort sett. grunnen til at "/<h4>[^<\/h4>]*<\/h4>/i" ikke virker er at den forkaster alle <h4></h4> tagger som inneholder "h". (<h4>masse lur tekst her</h4>) Å filtrere ut første 20 ord kan du gjøre etter at du har fått tak i det du vil ha. Mener å huske at det finnes tråder på forumet her fra før som omhandler dette. Lenke til kommentar
Anterialis Skrevet 8. april 2005 Forfatter Del Skrevet 8. april 2005 Får det fortsatt ikke til å funke... <?php $file = file_get_contents("news.php"); preg_match("/<h4>.*?<\/h4>/is",$fileContent,$news); $news = $news[0]; echo "$news"; ?> Lenke til kommentar
stiber Skrevet 9. april 2005 Del Skrevet 9. april 2005 Sjekk variabelnavnene. $file = file_get_contents("news.php"); preg_match("/<h4>.*?<\/h4>/is",$fileContent,$news); $news = $news[0]; echo "$news"; Lenke til kommentar
Anterialis Skrevet 10. april 2005 Forfatter Del Skrevet 10. april 2005 Sjekk variabelnavnene. $file = file_get_contents("news.php"); preg_match("/<h4>.*?<\/h4>/is",$fileContent,$news); $news = $news[0]; echo "$news"; og hva er forskjellen der? Lenke til kommentar
zokra Skrevet 10. april 2005 Del Skrevet 10. april 2005 Sjekk variabelnavnene. $file = file_get_contents("news.php"); preg_match("/<h4>.*?<\/h4>/is",$fileContent,$news); $news = $news[0]; echo "$news"; og hva er forskjellen der? $fileContent er feil... Det skal stå $file Lenke til kommentar
Anterialis Skrevet 12. april 2005 Forfatter Del Skrevet 12. april 2005 Hva om jeg ikke vil at taggene skal inkluderes da? Lenke til kommentar
stiber Skrevet 13. april 2005 Del Skrevet 13. april 2005 Slik. Vi "merker" det du vil ha med paranteser, og henter det ut med $news[1] istedet. $file = file_get_contents("news.php"); preg_match("/<h4>(.*?)<\/h4>/is",$file,$news); $news = $news[1]; echo "$news"; Lenke til kommentar
Anterialis Skrevet 14. april 2005 Forfatter Del Skrevet 14. april 2005 Og hva om jeg bare vil ha de 20 første ordene feks? Og at det da kommer opp "..." etter med link til den oprinnelige news siden? Lenke til kommentar
stiber Skrevet 14. april 2005 Del Skrevet 14. april 2005 Det finnes en måte å gjøre det med en regex, men den er ikke så veldig lesbar at det gjør noe. $file = file_get_contents("news.php"); preg_match ("/<h4>((?:\S+\b\s*){1,20}).*?<\/h4>/s",$file,$news); echo $news[1]."<a href='adresse'>...</a>; Et annet eksempel som du kan bygge videre på finner du i denne tråden. Lenke til kommentar
Anterialis Skrevet 14. april 2005 Forfatter Del Skrevet 14. april 2005 (endret) ok takker siste spm tror jeg: vet dere om noen tutorials hvor jeg kan lese om funksjonen "preg_match" ? EDIT: Når jeg satt inn den php fuksjonen, så printes det bare ut 1 bokstav! så kommer de ... som har link i seg. Hvordan får jeg første 20 ord? EDIT2: fant ut at den stopper når det kommer en ukjent bokstav (æøå). Hvordan kan jeg få den til å inkludere disse symbolene? I mitt tilfelle så var det første ordet "på" så da tok den bare med en bokstav og slutta før "å"-en. Endret 14. april 2005 av w3p Lenke til kommentar
stiber Skrevet 14. april 2005 Del Skrevet 14. april 2005 Hmm. Det skjer ikke når jeg tester. Men du kan prøve: preg_match ("/<h4>((?:[0-9a-zæøå,\.'\"]+\s*){1,20}).*?<\/h4>/is",$string,$match); Det burde fungere. på http://www.regular-expression.info/ finner du mye stoff om regular expressions. Lenke til kommentar
Anterialis Skrevet 15. april 2005 Forfatter Del Skrevet 15. april 2005 Takker nå fungerer det Men har et lite pirkespørsmål igjen: Coder jeg bruker nå <h4> <b>News</b><br /> <?php $file = file_get_contents("news.php"); preg_match ("/<h4>((?:[0-9a-zæøå,\.'\"]+\s*){1,20}).*?<\/h4>/is",$file,$news); echo $news[1]; ?> <a href="index.php?side=news">...</a> <p><a href="index.php?side=news">More news here.</a></p> </h4> Nå er det et mellomrom (<space>) mellom det siste ordet og "...". Det ser liksom så unaturlig ut. Hvordan kan jeg få vekk denne <space>-en ? Prøvde å viskle vekk så mye plass som mulig, uten hell... Lenke til kommentar
phanti Skrevet 15. april 2005 Del Skrevet 15. april 2005 Tror det er rtrim du er ute etter. Skal du fjerne whitespace både foran og bak så bruker du trim. Lenke til kommentar
Anterialis Skrevet 17. april 2005 Forfatter Del Skrevet 17. april 2005 hvordan får jeg scriptet til å ta med bokstaver som er i kursiv? tror det er det eneste som mangler nå... og "" tegn.. eller de er kanskje med fra før... Lenke til kommentar
Anterialis Skrevet 20. april 2005 Forfatter Del Skrevet 20. april 2005 Noen som vet? Det gjelder tegn som : " ; <em> og så videre. Hvordan får jeg inn slik at alle (omtrent) tegn kan skrives ut? Lenke til kommentar
Anterialis Skrevet 25. april 2005 Forfatter Del Skrevet 25. april 2005 Ingen som vet? Ja jeg vet jeg bumper, men det er verdt det hvis jeg får svar... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå