Gå til innhold

Hvordan finne linjemummer?


Anbefalte innlegg

Kan noen hjelpe meg med følgende problem:

 

Jeg bruker preg_match og file_get_contents for å finne tekst i filer.

Når teksten er funnet i en fil ønsker jeg å også finne linjenummeret denne teksten befinner seg på.

 

Noen som har gode ideer om hvordan dette kan gjøres, helst med eksempler?

 

Takker på forhånd!

Lenke til kommentar
Videoannonse
Annonse

Hva er en linje?

Er en linje delt med [ENTER] eller er det alltid ny linje hver 40. tegn?

Svømmer fisken? Flyr fuglen? Ender en linje med \n ?

I såfall, hvor bred er en tabulator?

Min tabulator er nøyaktig 2,2 cm bred, men det kommer an på hvilket tastatur du har.

Ellers noe du lurte på?

(Om du ikke har en løsning på mitt problem, så kan du la være å svare.) :thumbdown:

Lenke til kommentar

HVA?! Her stilles det et seriøst spørsmål og du svarer slik? Fikk ikke mye lyst til å hjelpe til nå for å si det sånn …

 

For ordenskyld, ikke noe problem å lage en fil hvor linjene er separert med en annen linjeskift (som forøvrig i Windows-verden er \r\n), og de trenger heller ikke å være separert med noe som helst hvis det har en fast bredde med «padding» når linja er mindre enn linjebredden. F.eks.

Dette er en linje  Dette er en annen   En tredje linje     

Her er linjebredden 20 tegn. Siden du tydeligvis ikke har fast linjebredde så hjelper det deg sikkert veldig lite når jeg sier at fast linjebredde gjør det enkelte å regne ut hvilken linje man er på ut fra byte-posisjonen i filen (byte-posisjon / linjebredden + 1).

Lenke til kommentar

Her er linjebredden 20 tegn. Siden du tydeligvis ikke har fast linjebredde så hjelper det deg sikkert veldig lite når jeg sier at fast linjebredde gjør det enkelte å regne ut hvilken linje man er på ut fra byte-posisjonen i filen (byte-posisjon / linjebredden + 1).

Takk for svar selv om det egentlig ikke hjalp meg så mye. :cool:

Jeg jobber med et program som scanner etter mistenkelig/skadelig kode, hovedsaklig i .php filer.

Om slik kode er funnet, ønsker jeg å oppgi i rapporten som programmet genererer, også linjenummeret dette er funnet på og ikke bare filbane, filnavn og hvilken kode funnet.

Jeg kan selvsagt lage meg en egen linjeteller funksjon, men da blir programmet alt for tregt i å utføre jobben. Derfor lurte jeg på om det lot seg gjøre på en enkel måte å finne linjenummer når jeg bruker file_get_contents ?

Lenke til kommentar

http://davidwalsh.na...magic-constants

 

__LINE__ har jeg brukt flere ganger til error-reporting, men jeg veit ikke om det kan brukes i ditt tilfelle. Verdt å ta en titt på, mener jeg.

Joda, jeg kjenner til den, men kan ikke bruke den i mitt program.

Takk for svar likevel..

 

Mest sannsynlig kan du det.

Hvorfor kan du ikke bruke det i programmet ditt da?

Endret av Thomas.
Lenke til kommentar

Takk for svar selv om det egentlig ikke hjalp meg så mye. :cool:

Jeg jobber med et program som scanner etter mistenkelig/skadelig kode, hovedsaklig i .php filer.

Om slik kode er funnet, ønsker jeg å oppgi i rapporten som programmet genererer, også linjenummeret dette er funnet på og ikke bare filbane, filnavn og hvilken kode funnet.

Jeg kan selvsagt lage meg en egen linjeteller funksjon, men da blir programmet alt for tregt i å utføre jobben. Derfor lurte jeg på om det lot seg gjøre på en enkel måte å finne linjenummer når jeg bruker file_get_contents ?

file_get_contents gir tilbake hele filen i en streng, så det finnes ingen umiddelbart enkel metode for å finne ut hvilken linje man er på. Hvis du kjenner byteposisjonen til starten av koden kan du forsåvidt hente ut delen før med substr og benytte substr_count til å telle antall linjeskift som finnes i den delen.

Endret av Ernie
Lenke til kommentar

Hva er en linje?

Er en linje delt med [ENTER] eller er det alltid ny linje hver 40. tegn?

Svømmer fisken? Flyr fuglen? Ender en linje med \n ?

 

...hvis du ikke vil ha hjelp så for all del.

 

En linje slutter med et skilletegn med mindre problemet du ønsket å løse var noe annet (f.eks linke i en <textarea> hvor en linje strengt tatt ikke behøver å slutte med et skilletegn)

 

Hvis du ikke har noe skrikende behov for å bruke file_get_contents så er file og søk i matrisen en mulig løsning.

 

...men om du ikke vil ha hjelp så er det også helt greit.

Lenke til kommentar

...men om du ikke vil ha hjelp så er det også helt greit.

 

Jeg beklager måten jeg svarte deg på. Jeg var nok litt for fokusert på det jeg holdt på med og problemet jeg jobbet med. Jeg forlangte nesten i farta at du eller noen andre skulle forstå nøyaktig hva jeg holdt på med, og når jeg var så fokusert på dette så ble svaret ditt helt feil for meg der og da.

Svaret ditt var selvsagt riktig sett fra ditt ståsted, så jeg beklager. :blush:

 

btw: Jeg har klart å løse problemet.. :thumbup:

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...