is there a way to create a function that uses values from the statement inside of brackets.


      //data here

if not, what i am trying to do is get a html tag and check/modify without having it inside of a variable or echo tag.

for example, i want to do the equivilent of this:

$data ={

i do not want to use javascript for this although it would be easier.

10 Years
Discussion Span
Last Post by hunkychop

Although the syntax of your example is incorrect, yes, you can create a function to manipulate the data.


function myFunction($input) {
      $output = strtolower($input);
      return $output;

$data = 'TEST';
$result = myFunction($data);

echo $result;

if not, what i am trying to do is get a html tag and check/modify without having it inside of a variable or echo tag.

the function i am writting needs to take the data contained in a statement>

<input type="text" name="input" />

then check if the configuration applies to it and then return the altered html.
i dont have issues with the "meat" of the function.
i will be constantly changing the data that i want to run through checkConfig() so putting the data in a variable ex. <?php $data="<input....."; ?> would not be efficient or helpful.

maby you can get the same results with a class?


Anything that is outside PHP tags is not available to PHP to manipulate.

Its hard to understand exactly what you are trying to do - why do you wish to manipulate the HTML? What is "the configuration". What is "the data contained in a statement"?

Why not just have PHP output the correct HTML based on your "configuration"?

Matti Ressler


i wrote the below script but it is not done

note: what i will eventually write is not as basic as just bolding the text. i just put that there as an example.

example check function

function check($d){
   require('config.php'); // contains $boldtext = true;
         return "<b>".$d."</b>";

example data:

<?php class data{function get(){  ?>
This is the text that will go through the check() function
<?php } function ret($string){echo $string;}}$data = new data(); ?>


i dont need to "technicaly" or "directly" manipulate the html, i just need to grab the html and then echo it modified.

let me rephrase this...

when i run this....
<?php function test(){ ?>
<?php } ?>

everytime a run test() in php, the html outside of the tags is outputted (data)

i want to take the data in test() and be able to do anything with it that i could do with a normal string.

i DO NOT want to do this.
echo "html here..";


$data = <<<_
html here...
echo $data;

i want to have the text outside of the php tags, grab it, and put it into string so i can echo it later. I cant quite phrase why i need to have the origional html outside of the php tags but you will just have to trust me that it is what i want. I dont know if i am on the right track with using a function to get the data, but i cant find any other way to get it,

i have tried doing something like this: <?php function test(){ return ?>html here...<?php ; } ?>
but nothing is returned.

Thanks for your help so far.


i am sorry for the triple post, i truly am... but i solved this issue after a day's work of googling and thought i could save people the same trouble by posting my solution here. i guess a moderator could delete by past two posts or something.

any way...
i discovered the use of buffering data before it reaches the browser.

//function that gets html
function getHTML($container_function){
	//johndm.com - gets html that results from
	//a function. example usage:
	//		<?php function foo(){ ?|> bar <?php } ?|>
	//		echo "<b>".getHTML("foo")."</b>";
	ob_start();ob_clean(); //start buffer
	call_user_func($container_function); //call container function
	$data=ob_get_contents(); //get data
	ob_end_clean(); //remove output from function
	return $data; //return html

//example usage

function foo(){ ?>
<?php } 

//now that the html outputted by the
//function is in a string, you can do anything
//to it you could do to a string.

echo "i am a ".$d." bar";
echo "<br />";
echo "i am ".strlen($d)." chars long";
echo "<br />";
echo "i have ".substr_count($d,">")." '>'s in me";
echo "<br />";
echo "my html looks like this: ".htmlentities($d);

//not only can it get html that is not inside
//of php tags, it can also let you modify 
//echo/printed data from a function also.

Perhaps something like this?

function myfunction($buffer) {
	return str_replace('hello', 'goodbye', $buffer);
$mystuff = ob_start("myfunction");
I am here to say hello

Matti Ressler

Votes + Comments
gives good solutions while having much patience with my extreemly ADD posts
This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.