bluebyyou Posted August 25, 2009 Share Posted August 25, 2009 I'm working on developing my on CMS. I have the bbcode part working. Now I am trying to replace image tags in my content from an array. I can't quite wrap my head around how to finish this. So far i use my code replacement scrpit to replace with %s so that I can use the sprintf() function to relpace those with images. Right now I have just manually coded the images from the array, but I am trying to figure out how to get the image names out of the array automatically. Any advice? this first bit of code is the bbcode replacement function and my attempt at insterting images. I named this file code_format.php <?php function code_format ($str,$images) { //remove html tags $str = htmlentities($str); $code_search = array( '/\[b\](.*?)\[\/b\]/is' => '<strong>$1</strong>', '/\[i\](.*?)\[\/i\]/is' => '<em>$1</em>', '/\[u\](.*?)\[\/u\]/is' => '<u>$1</u>', //'/\[url\=(.*?)\](.*?)\[\/url\]/is' => <a href="$1">$2</a>', //'/\[url\](.*?)\[\/url\]/is' => '<a href="$1">$1</a>, //'/\[align\=(left|center|right)\](.*?)\[\/align\]/is' => '<div style="text-align: $1;">$2</div>', //'/\[img\](.*?)\[\/img\]/is' => '<img src="$1" />', //'/\[mail\=(.*?)\](.*?)\[\/mail\]/is' => '<a href="mailto:$1">$2</a>', //'/\[mail\](.*?)\[\/mail\]/is' => '<a href="mailto:$1">$1</a>', //'/\[font\=(.*?)\](.*?)\[\/font\]/is' => '<span style="font-family: $1;">$2</span>', //'/\[size\=(.*?)\](.*?)\[\/size\]/is' => '<span style="font-size: $1;">$2</span>', //'/\[color\=(.*?)\](.*?)\[\/color\]/is' => '<span style="color: $1;">$2</span>', '/\[img\]/is' => '%s', '/\[ret\]/is' => '<br /><br />', ); // Do simple code replacements $str = preg_replace (array_keys($code_search), array_values($code_search), $str); // Do image replacements $a ="<img src='"; $b = "' />"; $str = sprintf($str,$a.$images[0].$b,$a.$images[1].$b,$a.$images[2].$b,$a.$images[3].$b); echo $str; } ?> the second bit of code is my image array and my example text. <?php include ("code_format.php"); $images = array('1.jpg','2.jpg','3.jpg','4.jpg'); $text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin sit amet risus enim. Nunc urna libero, porta eu tristique vel, porta vel est. Phasellus imperdiet commodo mauris sit amet eleifend. Fuscemi sem, suscipit sed rhoncus a, egestas sed nisl. Phasellus cursus eleifend congue. Vestibulum sit amet ante blandit massa aliquam porta. [img] Nulla lacinia purus non justo iaculis ultrices. Nunc sollicitudin odio sed ligula hendrerit vel euismod turpis porttitor. [b]Pellentesque suscipit[/b], tellus quis gravida blandit, quam tellus posuere ante, ut egestas odio erat nec augue. Praesent hendrerit mi sed metus suscipit hendrerit. Sed non ullamcorper ante. Phasellus nibh mauris, placerat at sodales non, tempus id dolor. In ullamcorper urna purus.[ret]\n\n". "Duis suscipit leo eget eros accumsan in auctor dui placerat. Quisque id dui quam, porttitor varius nisi. Maecenas vestibulum sagittis neque vitae blandit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed tortor mi, sodales vitae fringilla commodo, pellentesque sit amet nisl. Proin aliquam metus in velit blandit at molestie sapien dapibus. Ut sollicitudin lectus id massa suscipit lacinia. Sed ante felis, ultrices et iaculis nec, tristique at sem. Donec a augue et orci convallis semper. [img] Vestibulum mi neque, accumsan vel suscipit quis, cursus quis lacus. Vivamus vulputate cursus odio, eget cursus urna consequat vitae. Cras laoreet iaculis quam commodo malesuada. [i]Praesent scelerisque laoreet nisl, eu tempor diam gravida et. Ut dictum sodales nisi[/i]. Morbi viverra ornare porttitor. Ut pretium urna sed arcu venenatis et ultricies elit aliquam. Ut ut sollicitudin neque. Praesent orci magna, convallis et cursus vitae, ornare eget erat. Integer id est nec odio pulvinar tincidunt.[ret]\n\n". "Praesent id sapien libero, sit amet tincidunt lorem. Quisque volutpat nisi a tortor fringilla et scelerisque enim dignissim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse non mollis nunc. Duis vel molestie magna. Praesent nisi elit, posuere vel convallis id, mollis vitae dui. Vivamus aliquet semper dapibus. In ultricies molestie convallis. Vivamus hendrerit tellus venenatis lorem vulputate at interdum sapien dictum. Sed urna neque, facilisis et posuere nec, sodales rutrum nisi. [img] Suspendisse potenti. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; [u]In id mi eros, a iaculis arcu[/u]. Maecenas consequat consequat congue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Etiam blandit, nunc vitae sodales rutrum, nisi neque viverra massa, vulputate venenatis elit lacus vitae arcu. Curabitur at ante ipsum. Quisque sodales mauris a arcu sodales nec fringilla lacus interdum. In in lobortis dui. In malesuada, diam ac auctor interdum, massa nibh scelerisque augue, et tincidunt lectus purus eget lectus.[ret]\n\n". "Aliquam adipiscing tincidunt posuere. Suspendisse non purus nisl, at dapibus sapien. Maecenas posuere urna ac nibh scelerisque malesuada. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus sed nibh tortor, ac porta orci. Mauris ac turpis vitae libero vehicula pellentesque. Quisque vel urna sed magna pellentesque varius a et ligula. Proin ultricies magna at nibh auctor imperdiet. Nullam sed erat mauris, id laoreet augue. Pellentesque enim est, accumsan varius mattis ac, convallis sit amet velit. Cras nulla risus, laoreet ac consectetur ut, tristique ac lorem. Curabitur scelerisque elit eget nunc eleifend eu fringilla nibh porttitor. [img] Sed ullamcorper vestibulum orci, vel interdum turpis semper non. Quisque id malesuada velit. Praesent a est nulla, ut dignissim nulla. Aenean eget tellus vel libero venenatis vestibulum. Maecenas magna sapien, mattis at pharetra eu, iaculis sed magna. \n\n"; code_format($text, $images); ?> Quote Link to comment Share on other sites More sharing options...
bluebyyou Posted August 25, 2009 Author Share Posted August 25, 2009 anyone? Quote Link to comment Share on other sites More sharing options...
Mardoxx Posted August 25, 2009 Share Posted August 25, 2009 I think I speak for everyone when I say... WAT what are you trying to replace.. give us a sample/wanted output plz Quote Link to comment Share on other sites More sharing options...
bluebyyou Posted August 25, 2009 Author Share Posted August 25, 2009 Here is the output of what I have...It works fine, I accomplished my goal... My bbcode tags are replaced with html tags, including the image tags... Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin sit amet risus enim. Nunc urna libero, porta eu tristique vel, porta vel est. Phasellus imperdiet commodo mauris sit amet eleifend. Fuscemi sem, suscipit sed rhoncus a, egestas sed nisl. Phasellus cursus eleifend congue. Vestibulum sit amet ante blandit massa aliquam porta. <img src='1.jpg' /> Nulla lacinia purus non justo iaculis ultrices. Nunc sollicitudin odio sed ligula hendrerit vel euismod turpis porttitor. <strong>Pellentesque suscipit</strong>, tellus quis gravida blandit, quam tellus posuere ante, ut egestas odio erat nec augue. Praesent hendrerit mi sed metus suscipit hendrerit. Sed non ullamcorper ante. Phasellus nibh mauris, placerat at sodales non, tempus id dolor. In ullamcorper urna purus.<br /><br /> Duis suscipit leo eget eros accumsan in auctor dui placerat. Quisque id dui quam, porttitor varius nisi. Maecenas vestibulum sagittis neque vitae blandit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed tortor mi, sodales vitae fringilla commodo, pellentesque sit amet nisl. Proin aliquam metus in velit blandit at molestie sapien dapibus. Ut sollicitudin lectus id massa suscipit lacinia. Sed ante felis, ultrices et iaculis nec, tristique at sem. Donec a augue et orci convallis semper. <img src='2.jpg' /> Vestibulum mi neque, accumsan vel suscipit quis, cursus quis lacus. Vivamus vulputate cursus odio, eget cursus urna consequat vitae. Cras laoreet iaculis quam commodo malesuada. <em>Praesent scelerisque laoreet nisl, eu tempor diam gravida et. Ut dictum sodales nisi</em>. Morbi viverra ornare porttitor. Ut pretium urna sed arcu venenatis et ultricies elit aliquam. Ut ut sollicitudin neque. Praesent orci magna, convallis et cursus vitae, ornare eget erat. Integer id est nec odio pulvinar tincidunt.<br /><br /> Praesent id sapien libero, sit amet tincidunt lorem. Quisque volutpat nisi a tortor fringilla et scelerisque enim dignissim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse non mollis nunc. Duis vel molestie magna. Praesent nisi elit, posuere vel convallis id, mollis vitae dui. Vivamus aliquet semper dapibus. In ultricies molestie convallis. Vivamus hendrerit tellus venenatis lorem vulputate at interdum sapien dictum. Sed urna neque, facilisis et posuere nec, sodales rutrum nisi. <img src='3.jpg' /> Suspendisse potenti. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; <u>In id mi eros, a iaculis arcu</u>. Maecenas consequat consequat congue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Etiam blandit, nunc vitae sodales rutrum, nisi neque viverra massa, vulputate venenatis elit lacus vitae arcu. Curabitur at ante ipsum. Quisque sodales mauris a arcu sodales nec fringilla lacus interdum. In in lobortis dui. In malesuada, diam ac auctor interdum, massa nibh scelerisque augue, et tincidunt lectus purus eget lectus.<br /><br /> Aliquam adipiscing tincidunt posuere. Suspendisse non purus nisl, at dapibus sapien. Maecenas posuere urna ac nibh scelerisque malesuada. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus sed nibh tortor, ac porta orci. Mauris ac turpis vitae libero vehicula pellentesque. Quisque vel urna sed magna pellentesque varius a et ligula. Proin ultricies magna at nibh auctor imperdiet. Nullam sed erat mauris, id laoreet augue. Pellentesque enim est, accumsan varius mattis ac, convallis sit amet velit. Cras nulla risus, laoreet ac consectetur ut, tristique ac lorem. Curabitur scelerisque elit eget nunc eleifend eu fringilla nibh porttitor. <img src='4.jpg' /> Sed ullamcorper vestibulum orci, vel interdum turpis semper non. Quisque id malesuada velit. Praesent a est nulla, ut dignissim nulla. Aenean eget tellus vel libero venenatis vestibulum. Maecenas magna sapien, mattis at pharetra eu, iaculis sed magna. however... I am trying to figure out how to automatically insert these jpg's from the images array without hard coding them using their keys. $str = sprintf($str,$a.$images[0].$b,$a.$images[1].$b,$a.$images[2].$b,$a.$images[3].$b); Quote Link to comment Share on other sites More sharing options...
bluebyyou Posted August 25, 2009 Author Share Posted August 25, 2009 I have tried to replace each tag one at a time, but it replaces them all with the same image. foreach ($images as $key => $value) { $str = preg_replace ('/\[img\]/is', $value , $str); echo $key."|".$value."<br />\n\n"; } I don't know what else to try? Quote Link to comment Share on other sites More sharing options...
bluebyyou Posted August 26, 2009 Author Share Posted August 26, 2009 has anyone used joomla or mambo? you have a list of images..then you place a tag in your article...the list of images will go in order of those tags you place in your text. thats what I am trying to accomplish if that helps. Quote Link to comment Share on other sites More sharing options...
bluebyyou Posted September 8, 2009 Author Share Posted September 8, 2009 I'm still looking for a solution if anyone else has some fresh eyes to lend me please? Quote Link to comment Share on other sites More sharing options...
bluebyyou Posted September 9, 2009 Author Share Posted September 9, 2009 I finally figured it out, all I had to do was set the LIMIT on the preg_replace function to replace one image tag at a time. Here is the code if anyone is interested. What it does is parse text, like a content management system might, and also replaces a number tags from an array of image names. <?php function code_format ($str,$images) { //remove html tags $str = htmlentities($str); $tag_identifiers = array( '/\[b\](.*?)\[\/b\]/is' => '<strong>$1</strong>', '/\[i\](.*?)\[\/i\]/is' => '<em>$1</em>', '/\[u\](.*?)\[\/u\]/is' => '<u>$1</u>', //'/\[url\=(.*?)\](.*?)\[\/url\]/is' => <a href="$1">$2</a>', //'/\[url\](.*?)\[\/url\]/is' => '<a href="$1">$1</a>, //'/\[align\=(left|center|right)\](.*?)\[\/align\]/is' => '<div style="text-align: $1;">$2</div>', //'/\[img\](.*?)\[\/img\]/is' => '<img src="$1" />', //'/\[mail\=(.*?)\](.*?)\[\/mail\]/is' => '<a href="mailto:$1">$2</a>', //'/\[mail\](.*?)\[\/mail\]/is' => '<a href="mailto:$1">$1</a>', //'/\[font\=(.*?)\](.*?)\[\/font\]/is' => '<span style="font-family: $1;">$2</span>', //'/\[size\=(.*?)\](.*?)\[\/size\]/is' => '<span style="font-size: $1;">$2</span>', //'/\[color\=(.*?)\](.*?)\[\/color\]/is' => '<span style="color: $1;">$2</span>', //'/\[img\]/is' => '%s', '/\[ret\]/is' => '<br /><br />', ); // Do simple tag replacements $str = preg_replace (array_keys($tag_identifiers), array_values($tag_identifiers), $str); // Do image replacements foreach ($images as $key => $value) { $str = preg_replace ('/\[img\]/is', "<img src='".$value."' />" , $str, 1); } echo $str; } $images = array('1.jpg','2.jpg','3.jpg','4.jpg','5.jpg'); $text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin sit amet risus enim. Nunc urna libero, porta eu tristique vel, porta vel est. Phasellus imperdiet commodo mauris sit amet eleifend. Fuscemi sem, suscipit sed rhoncus a, egestas sed nisl. Phasellus cursus eleifend congue. Vestibulum sit amet ante blandit massa aliquam porta. [img] Nulla lacinia purus non justo iaculis ultrices. Nunc sollicitudin odio sed ligula hendrerit vel euismod turpis porttitor. [b]Pellentesque suscipit[/b], tellus quis gravida blandit, quam tellus posuere ante, ut egestas odio erat nec augue. Praesent hendrerit mi sed metus suscipit hendrerit. Sed non ullamcorper ante. Phasellus nibh mauris, placerat at sodales non, tempus id dolor. In ullamcorper urna purus.[ret]\n\n". "Duis suscipit leo eget eros accumsan in auctor dui placerat. Quisque id dui quam, porttitor varius nisi. Maecenas vestibulum sagittis neque vitae blandit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed tortor mi, sodales vitae fringilla commodo, pellentesque sit amet nisl. Proin aliquam metus in velit blandit at molestie sapien dapibus. Ut sollicitudin lectus id massa suscipit lacinia. Sed ante felis, ultrices et iaculis nec, tristique at sem. Donec a augue et orci convallis semper. [img] Vestibulum mi neque, accumsan vel suscipit quis, cursus quis lacus. Vivamus vulputate cursus odio, eget cursus urna consequat vitae. Cras laoreet iaculis quam commodo malesuada. [i]Praesent scelerisque laoreet nisl, eu tempor diam gravida et. Ut dictum sodales nisi[/i]. Morbi viverra ornare porttitor. Ut pretium urna sed arcu venenatis et ultricies elit aliquam. Ut ut sollicitudin neque. Praesent orci magna, convallis et cursus vitae, ornare eget erat. Integer id est nec odio pulvinar tincidunt.[ret]\n\n". "Praesent id sapien libero, sit amet tincidunt lorem. Quisque volutpat nisi a tortor fringilla et scelerisque enim dignissim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse non mollis nunc. Duis vel molestie magna. Praesent nisi elit, posuere vel convallis id, mollis vitae dui. Vivamus aliquet semper dapibus. In ultricies molestie convallis. Vivamus hendrerit tellus venenatis lorem vulputate at interdum sapien dictum. Sed urna neque, facilisis et posuere nec, sodales rutrum nisi. [img] Suspendisse potenti. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; [u]In id mi eros, a iaculis arcu[/u]. Maecenas consequat consequat congue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Etiam blandit, nunc vitae sodales rutrum, nisi neque viverra massa, vulputate venenatis elit lacus vitae arcu. Curabitur at ante ipsum. Quisque sodales mauris a arcu sodales nec fringilla lacus interdum. In in lobortis dui. In malesuada, diam ac auctor interdum, massa nibh scelerisque augue, et tincidunt lectus purus eget lectus.[ret]\n\n". "Aliquam adipiscing tincidunt posuere. Suspendisse non purus nisl, at dapibus sapien. Maecenas posuere urna ac nibh scelerisque malesuada. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus sed nibh tortor, ac porta orci. Mauris ac turpis vitae libero vehicula pellentesque. Quisque vel urna sed magna pellentesque varius a et ligula. Proin ultricies magna at nibh auctor imperdiet. Nullam sed erat mauris, id laoreet augue. Pellentesque enim est, accumsan varius mattis ac, convallis sit amet velit. Cras nulla risus, laoreet ac consectetur ut, tristique ac lorem. Curabitur scelerisque elit eget nunc eleifend eu fringilla nibh porttitor. [img] Sed ullamcorper vestibulum orci, vel interdum turpis semper non. Quisque id malesuada velit. Praesent a est nulla, ut dignissim nulla. Aenean eget tellus vel libero venenatis vestibulum. Maecenas magna sapien, mattis at pharetra eu, iaculis sed magna. \n\n"; code_format($text, $images); ?> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.