User Name Password Register
DaniWeb IT Discussion Community
All
What is DaniWeb IT Discussion Community?
You're currently browsing the PHP section within the Web Development category of DaniWeb, a massive community of 375,235 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 2,028 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our PHP advertiser: Lunarpages PHP Web Hosting
Views: 407 | Replies: 8 | Solved
Reply
Join Date: Mar 2007
Location: georgia
Posts: 55
Reputation: hunkychop is an unknown quantity at this point 
Rep Power: 2
Solved Threads: 4
hunkychop's Avatar
hunkychop hunkychop is offline Offline
Junior Poster in Training

using statements in user defined functions

  #1  
Mar 28th, 2008
is there a way to create a function that uses values from the statement inside of brackets.

ex.
  1. myFunction(){
  2. //data here
  3. }

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:
  1. <?php
  2. $data ={
  3. ?>
  4. test
  5. <?php
  6. }
  7. myFunction($test);
  8. ?>

i do not want to use javascript for this although it would be easier.
thanks!
toast
AddThis Social Bookmark Button
Reply With Quote  
Join Date: Mar 2008
Posts: 153
Reputation: Suomedia is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 19
Suomedia Suomedia is offline Offline
Junior Poster

Re: using statements in user defined functions

  #2  
Mar 28th, 2008
Although the syntax of your example is incorrect, yes, you can create a function to manipulate the data.

eg.

  1. <?php
  2. function myFunction($input) {
  3. $output = strtolower($input);
  4. return $output;
  5. }
  6.  
  7. $data = 'TEST';
  8. $result = myFunction($data);
  9.  
  10. echo $result;
  11. ?>
Last edited by Suomedia : Mar 28th, 2008 at 11:42 am.
If you want your dreams to come true, the first thing you must do is to wake up....
Suomedia - Dynamic Content Management
Reply With Quote  
Join Date: Mar 2007
Location: georgia
Posts: 55
Reputation: hunkychop is an unknown quantity at this point 
Rep Power: 2
Solved Threads: 4
hunkychop's Avatar
hunkychop hunkychop is offline Offline
Junior Poster in Training

Re: using statements in user defined functions

  #3  
Mar 28th, 2008
Originally Posted by hunkychop View Post
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>
  1. <?php
  2. checkConfig(){
  3. ?>
  4. <input type="text" name="input" />
  5. <?php
  6. }
  7. ?>
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?
Last edited by hunkychop : Mar 28th, 2008 at 12:32 pm.
toast
Reply With Quote  
Join Date: Mar 2008
Posts: 153
Reputation: Suomedia is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 19
Suomedia Suomedia is offline Offline
Junior Poster

Re: using statements in user defined functions

  #4  
Mar 28th, 2008
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
Suomedia
If you want your dreams to come true, the first thing you must do is to wake up....
Suomedia - Dynamic Content Management
Reply With Quote  
Join Date: Mar 2007
Location: georgia
Posts: 55
Reputation: hunkychop is an unknown quantity at this point 
Rep Power: 2
Solved Threads: 4
hunkychop's Avatar
hunkychop hunkychop is offline Offline
Junior Poster in Training

Re: using statements in user defined functions

  #5  
Mar 28th, 2008
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
  1. <?php
  2. function check($d){
  3. require('config.php'); // contains $boldtext = true;
  4. if($boldtext){
  5. return "<b>".$d."</b>";
  6. }
  7. }?>

example data:

  1. <?php class data{function get(){ ?>
  1. This is the text that will go through the check() function
  1. <?php } function ret($string){echo $string;}}$data = new data(); ?>
  2.  
  3.  
  4. <?php
  5. $data->ret(check($data->get()));
  6. ?>
Last edited by hunkychop : Mar 28th, 2008 at 4:01 pm.
toast
Reply With Quote  
Join Date: Mar 2007
Location: georgia
Posts: 55
Reputation: hunkychop is an unknown quantity at this point 
Rep Power: 2
Solved Threads: 4
hunkychop's Avatar
hunkychop hunkychop is offline Offline
Junior Poster in Training

Re: using statements in user defined functions

  #6  
Mar 28th, 2008
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(){ ?>
data
<?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..";

or

<?php
$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.
Last edited by hunkychop : Mar 28th, 2008 at 6:54 pm.
toast
Reply With Quote  
Join Date: Mar 2007
Location: georgia
Posts: 55
Reputation: hunkychop is an unknown quantity at this point 
Rep Power: 2
Solved Threads: 4
hunkychop's Avatar
hunkychop hunkychop is offline Offline
Junior Poster in Training

Re: using statements in user defined functions

  #7  
Mar 28th, 2008
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.

  1. <?php
  2. //function that gets html
  3. function getHTML($container_function){
  4. //johndm.com - gets html that results from
  5. //a function. example usage:
  6. // <?php function foo(){ ?|> bar <?php } ?|>
  7. // echo "<b>".getHTML("foo")."</b>";
  8.  
  9. ob_start();ob_clean(); //start buffer
  10. call_user_func($container_function); //call container function
  11. $data=ob_get_contents(); //get data
  12. ob_end_clean(); //remove output from function
  13. return $data; //return html
  14.  
  15. }
  16.  
  17. //example usage
  18.  
  19. function foo(){ ?>
  20. <b>foo</b>
  21. <?php }
  22. $d=getHTML("foo");
  23.  
  24. //now that the html outputted by the
  25. //function is in a string, you can do anything
  26. //to it you could do to a string.
  27.  
  28. echo "i am a ".$d." bar";
  29. echo "<br />";
  30. echo "i am ".strlen($d)." chars long";
  31. echo "<br />";
  32. echo "i have ".substr_count($d,">")." '>'s in me";
  33. echo "<br />";
  34. echo "my html looks like this: ".htmlentities($d);
  35.  
  36. //not only can it get html that is not inside
  37. //of php tags, it can also let you modify
  38. //echo/printed data from a function also.
  39. ?>
  40.  
Last edited by hunkychop : Mar 28th, 2008 at 8:09 pm.
toast
Reply With Quote  
Join Date: Mar 2008
Posts: 153
Reputation: Suomedia is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 19
Suomedia Suomedia is offline Offline
Junior Poster

Re: using statements in user defined functions

  #8  
Mar 28th, 2008
Perhaps something like this?


<?php
function myfunction($buffer) {
	return str_replace('hello', 'goodbye', $buffer);
}
$mystuff = ob_start("myfunction");
?>
I am here to say hello
<?php
ob_end_flush();
?>

Matti Ressler
Suomedia
If you want your dreams to come true, the first thing you must do is to wake up....
Suomedia - Dynamic Content Management
Reply With Quote  
Join Date: Mar 2007
Location: georgia
Posts: 55
Reputation: hunkychop is an unknown quantity at this point 
Rep Power: 2
Solved Threads: 4
hunkychop's Avatar
hunkychop hunkychop is offline Offline
Junior Poster in Training

Re: using statements in user defined functions

  #9  
Mar 28th, 2008
thanks! that does work simpler than my method.
toast
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)

 

DaniWeb PHP Marketplace
Thread Tools Display Modes

Similar Threads
Other Threads in the PHP Forum

All times are GMT -4. The time now is 4:19 am.
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC