Gå til innhold

[Problem løst] "Trekke ut" tekst fra... vel... tek


Anbefalte innlegg

Hei!

 

Prøver desperat å finne ut hvorfor noe ikke funker som det skal. Jeg har følgende "script":


// $page = 1

function remover($string, $sep1, $sep2)

{

      $string = substr($string, 0, strpos($string,$sep2));

      $string = substr(strstr($string, $sep1), 1);



      return $string;

}



// get which snr and enr to use

$pagenr = 'page'.$page;

$ssnr = 'enr'.$page;

$snr = remover($row->pnr, $pagenr, ' enr');

$enr = remover($row->pnr, $ssnr, ' END');

// snr = nr for first paragraph

// enr = nr for last paragraph



for ($nr = $snr; $nr == $enr; $nr++) {



// get header

$str1 = "header".$nr;

$str2 = "content".$nr;

$Header = remover($row->paragraphs, $str1, $str2);



// get content for header

$fnr = $nr++;

$str1 = "content".$nr;

$str2 = "header".$fnr;

$Content = remover($row->paragraphs, $str1, $str2);



// en del cells, så:

<?=$Header?>

// en del til, så:

<?=$Content?>

// noen cells til, før jeg avslutter for-loopen

<?php } ?>

 

Database innholdet i paragraphs ser slikt ut:

header1 Introduksjon content1 testing header2 Grafikken var blabalb content2 tøft med bil.. header3 Audi eller Ferrari? content3 hardt spørsmål

 

Innholdet i pnr:

page11 enr12 END

(altså, page1, verdien er 1, som ligger mellom "page1", og " enr". Er litt merkelig satt opp...)

 

Dog, med dette scriptet, vises rett og slett ingenting. Som om det ikke "henter inn" noe fra databsen i det hele tatt.

Men likevel, problemet er egentlig ganske åpenbart. Dog, jeg forstår ikke hvorfor problemet skjer.

 

Jeg har nemlig testet med noe andre scripts, ved bruk av samme funksjon, hvor det viste seg at hvis jeg brukte f. eks. funksjonen "remover", for å hente den understrekete teksten under...

Funksjon:

$gmR = remover($row->scores, 'gmR', 'gmRD');

Tekst i database:

gmR90gmRD

 

Resultatet var da: mR90%

 

Så det virker som om den går ut ifra den ene bokstaven(første bokstaven).. altså g... og printer alt fra g til gmRD (antageligvis g'en der også).

 

Så hvis dette er feilen, kan det også bety at "header" og "content" blir ikke vist, fordi snr og enr ender opp med å ikke bli rene siffer/integers.

 

Vil da anta at det er noe feil i funksjonen "remove" (Se lenger opp).

Er så trøtt nå at jeg er ikke helt klar i hodet,,, så jeg sliter litt... :wink:

 

Men om noen har forslag, tas de stert med takk! :D

 

Mvh,

Joachim F.

Lenke til kommentar
Videoannonse
Annonse

Beklager, jeg var ikke helt klar i spørsmålet over.

 

Det jeg prøver å gjøre, er å "trekke ut" tekst, ved å definere teksten som er til venstre og høyre (Før og etter).

Altså, skriver jeg:

$string = "førmintekstetter";

echo remover($string, 'før', 'etter');

 

da ønsker jeg å få resultatet: "mintekst".

 

Dog, det fungerer ikke. Jeg får: ørmintekst.

Så det virker som om den tar alle bokstaver fra f'en i "før", og til e'en i "etter".

 

Det er dette jeg lurer på. Hvordan jeg kan endre funksjonen remover (som står i øverste post), til å ta fra slutten av ordet jeg legger inn istedet for første bokstaven som det nå tydeligvis gjør, altså, skriver jeg "før", vil jeg at den skal ta fra r'en, ikke f'en. Altså hele ordet.

 

For å unngå forvirring skriver jeg funksjonen remover igjen:

function remover($string, $sep1, $sep2) 

{ 

      $string = substr($string, 0, strpos($string,$sep2)); 

      $string = substr(strstr($string, $sep1), 1); 



      return $string; 

} 

 

Vil anta at det er denne linjen som må gjøres noe med:

$string = substr($string, 0, strpos($string,$sep2));

 

Takker for all hjelp. :)

 

Joachim

Lenke til kommentar

Beklager, min feil igjen:

Det er ikke denne linjen det må gjøres noe med:

$string = substr($string, 0, strpos($string,$sep2));

 

Men denne:

$string = substr(strstr($string, $sep1), 1);

 

1'tallet i slutten der, bestemmer hvorfra i teksten i $sep1 (i eksemplet mitt altså "før") den skal begynne å ta fra. Når det står 1, er det logisk nok fra f, og ut. Endrer jeg den til 0, er det fra og med f og ut. Jeg vil at den skal operere motsatt vei, altså se på slutten av "før", og ta fra r'en og ut. Selvfølgelig kan jeg bare sette den til 3. Men hva skjer da når jeg har et lengre ord?

 

Prøvde med "-1", men funka dårlig.

 

Mvh,

Joachim

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...