Avatar billede djthomas Nybegynder
18. november 2004 - 13:22 Der er 8 kommentarer og
1 løsning

Hjælp til regulært udtryk

Hej.

Nu vil jeg gerne ha lidt hjælp til regulære udtryk. Det her er lidt over hvad jeg kan finde ud af på rygraden.

Det jeg skal ha' lavet er at jeg skal ha' skiftet nogle tags ud med nogle html tags. F.eks [img=1] skal blive til <img src="/imges/pic.jpg">

pic.jpg har jeg i et array med alle de billeder som skal være i min text. Det trækker jeg ud med functionen get_images(), så jeg forestiller mig at 1 tallet i [img=1] er pladsen i arrayet.

Jeg er desværre ikke den store haj til regulære udtryk, men håber at nogen kan hjælpe mig på rette ved. Jeg forlanger ikke at nogen laver det for mig, men blir da glad hvis nogen gør, så jeg kan lure af hvad der foregår. Men ellers blir jeg glad hvis nogen bare kan guide mig.

Det jeg har prøvet selv er noget ala det her:

class Imageinsert extends Webpage{

    function insert_images( $content, $page_id ){
   
        $upload_folder = $this->upload_folder;
       
        $image = mysql_fetch_array( $this->get_images( $page_ud ) );
       
        /* DET ER SÅ HER JEG IKKE KAN FINDE DU AF AT LAVE DE REGULÆRE UDTRYK! HJÆÆÆÆÆLP :-)

*/
   
       
   
        return $content;
    }
   
    function get_images(){
        $result = mysql_query("SELECT
                                    *
                                FROM
                                    ".$this->images_table."
                                WHERE
                                    page_id = '".$page_id."'");
        if( $result ){
            return $result;
        }
    }
   
}
Avatar billede schaefner Juniormester
18. november 2004 - 13:41 #1
Avatar billede djthomas Nybegynder
18. november 2004 - 14:04 #2
Hmmm so far ser det næsten rigtigt ud, den sætter et img ind, men serveren det af IEs "ingen billede" der kommer frem.

den printer ikke noget billedeud kan jeg se i egentskaber, men mit array ser således ud: array(2) { [0]=> string(10) "Vinter.jpg" ["picture"]=> string(10) "Vinter.jpg" }

Jeg kan ikek helt gennemskue dit img src tag stien er /upload/pic hvordanm skal jeg ændre det, lige gyldigt hvad jeg ændr ei det så fejler klassen.

Lige en sidste ting, hvad betyder det der ieU i preg_replace sætningen?
Avatar billede schaefner Juniormester
18. november 2004 - 14:08 #3
Prøv:

print preg_replace("/\[img=([0-9]+)\]/ie", "'<img src=\"/upload/pic/'.\$images[\\1].'\" alt=\"\" />'", $string);

Du kan se en beskrivelse af de forskellige modifiers her: http://dk2.php.net/manual/en/reference.pcre.pattern.modifiers.php
Avatar billede djthomas Nybegynder
18. november 2004 - 14:24 #4
Der er stadig fejl i $images[//1] den printer ikke noget ud fra arrayet.

var_dump($images) ser således ud: array(2) { [0]=> string(10) "Vinter.jpg" ["picture"]=> string(10) "Vinter.jpg" }
Avatar billede schaefner Juniormester
18. november 2004 - 14:29 #5
Melder den fejl?
Avatar billede djthomas Nybegynder
18. november 2004 - 14:30 #6
nejd et printer bare ikke noget ud. Mit array ser jo også lidt anderledes ud end det du har.

Mit starter med 0 og dit med 1 jeg ved ikke óm det har noget at sige?
Avatar billede schaefner Juniormester
18. november 2004 - 14:35 #7
Nej, det burde ikke gøre noget.
Men hvis du skal have udskrevet billedet der ligger under 0, så skal du jo skrive [img=0]
Avatar billede djthomas Nybegynder
18. november 2004 - 14:43 #8
Arrh my dab - sorry, det virker næsten jeg fatter bare ikke helt $images[//1] men det skal jeg nok finde ud af, svar og du skal få ponit
Avatar billede schaefner Juniormester
18. november 2004 - 14:51 #9
Ok.

Med venlig hilsen
Jesper Sørensen
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