Jump to content
Sign in to follow this  
jorgis

Finne et punkt i en variabel

Recommended Posts

Jeg holder på med en BBCode-greie til et newsskript jeg mekker, og for å få URL-taggen til å funke, må jeg kunne finne punkter i variabelen som er input fra bruker. I vanlig BBCode, er syntaks for URL-tag slik:

[url=http://www.ensidepåinternett.com]Dette er linktekst[/url]

 

Jeg er nødt til å hente ut alt som er mellom = og ]. Dette skal "oversettes" videre med en str_replace, slik at det blir dugelig HTML ut av det. Spørsmålet er bare hvordan jeg kan finne teksten mellom de spesielle punktene.

Share this post


Link to post

Poenget er at jeg ikke skal erstatte spesifikke punkter i variabelen, men finne punktene uten å vite hvor. Jeg skal finne det som er mellom = og ], men det er ikke nøyaktig det samme hver gang. En annen mulighet kunne vært å erstattet (via str_replace()) ] med "> , men det går ikke, siden det er _mange_ ] i input-variabelen. Anyone?

Share this post


Link to post

Du kan bruke denne kode snutten:

$news = preg_replace("/\[url=([a-z]+?:\/\/)(.*?)\](.*?)\[\/url\]/", "<a href=\"\\1\\2\" target=\"_blank\">\\3</a>", $news);

Forandr $news med den variablen som inneholder teksten du skal sjekke.

Det er lenge siden eg skreiv bb til newsscriptet mitt, men vist eg husker rett så er koden inne i kvar () det som blir hentet ut som \1 osv etter kor den er plassert.

Share this post


Link to post

Takk. Nå funket det helt perfekt. :thumbs:

 

Er bare en liten detalj igjen før alt fungerer 100%: Hvordan gjør jeg slik at BBcode ikke er case-sensitiv?

Share this post


Link to post

Greitt...

 

Har enda et par problemer:

 

 

Her er en link til hvordan det ser ut nå. Tekstformatering funker fint, og det å sette inn smileys ved å klikke på dem funker også. Problem nr. 1 er at smileyene fyller opp den skulte div'en, og gjør det ganske rotete. Jeg vil begrense det til 4 smileys per rad, men hvordan?

Koden for å hente ut smileyer fra mappe og mekke linker ser slik ut:

<?php 
 	if ($handle = opendir('smileys')) {
   while (false !== ($file = readdir($handle))) { 
   	if ($file != "." && $file != "..") { 
     $filnavn = str_replace(".gif","",$file); // stripper vekk filendelsen
     
     $filnavn = str_replace("$filnavn",":$filnavn:",$filnavn); //legger til : på hver side
     
     echo '<img src="smileys/'. urlencode($file) . '" onClick="emoticon(\'' . $filnavn . '\')"></a>   '; // "knapp" for å sette inn BB'en
      
   	} 
   }
   closedir($handle); 
 	}
 ?> 

 

Problem nr. 2 er når jeg skal "parse" BB-kodene. Jeg har to arrays, ett med BB-koder, og ett med erstatningene til BB-kodene. Hvordan skal jeg få alle verdiene til de forskjellige smileyene inn i arrayet uten å skrive det manuelt? Hovedkraften til skriptet er nemlig at du ikke må gjøre noe for å legge til en ny smiley.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...