Jump to content

[SOLVED] simple cms image replacement


bluebyyou

Recommended Posts

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);
?>

Link to comment
Share on other sites

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);

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

  • 2 weeks later...

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);
?>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

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

  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.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.