May 16, 2008

Php Replace Help!

Free Web Hosting, No Ads > CONTRIBUTE > The Internet > Web Design

free web hosting

Php Replace Help!

Tom743
CODE
<?php
function code( $input ){

$data[0] = "<?php include(\"shoutbox.php?no=";
$data[1] = "\"); ?>";

$find[0] = "/\[b\](.*?)\[\/b\]/i";
$find[1] = "/\[url\=(.*)\](.*)\[\/url\]/";
$find[2] = "/\[u\](.*?)\[\/u\]/i";
$find[3] = "/\[i\](.*?)\[\/i\]/i";
$find[4] = "/\[big\](.*?)\[\/big\]/i";
$find[5] = "/\[small\](.*?)\[\/small\]/i";
$find[6] = "/\[shoutbox]id=(.*)\[\/shoutbox\]/";

$replace[0] = "<b>$1</b>";
$replace[1] = "<a href=\"$1\">$2</a>";
$replace[2] = "<u>$1</u>";
$replace[3] = "<i>$1</i>";
$replace[4] = "<font size=\"5\">$1</font>";
$replace[5] = "<font size=\"2\">$1</font>";
$replace[6] = "$data[0]$1$data[1]";

$change = preg_replace($find, $replace, $input);
print $change;
}
code("[shoutbox]id=1[/shoutbox]");
?>


In my code, the shoutbox doesnt work. The code is ment to replace [shoutbox]no= with <?php include("shoutbox.php?no= then replace [/shoutbox] with "); ?> which it does, but then the php code just appears in the sorce of the webpage. Does anyone know how to fix it?

Thanks

Notice from electriic ink:
There's no need to sign your name. We can see who started the topic smile.gif

 

 

 


Reply

electriic ink
Wouldn't it be easier just to do this?

CODE
$string = '[shoutbox]id=1[/shoutbox]';
$string = str_replace ('[shoutbox]id=', '', $string);
$string = str_replace ('[/shoutbox]', '', $string);

include ('shoutbox.php?no=' . $string);


Using that you could create a seperate function:

CODE
function shoutbox_tag ($input) {

$string = strstr ($input, '[shoutbox]');    // Removes all parts of string that are NOT [shoutbox]...[/shoutbox]
$string = strstr ($string, '[/shoutbox]', true);
$string = $string . '[/shoutbox]'; // End remove

$string = str_replace ('[shoutbox]id=', '', $string);
$string = str_replace ('[/shoutbox]', '', $string);

return $string;

}


Which you would call as follows:

CODE
include ('shoutbox.php?no=' . shoutbox_tag('123123[shoutbox]id=1[/shoutbox]123123'));

 

 

 


Reply

truefusion
If you want to execute a string as if it were PHP code, consider researching eval. Just be careful with this function, as you wouldn't want user input to be ran as PHP code, so you may need to properly verify the string before running eval.

BTW, you can't include files the way you want them to be included; that is, assigning _GET variables.

Reply

Tom743
Is it possible when using PHP preg_replace, to include something, rather than displaying text. The code is below, the proplem is with the shoutbox.

CODE
<?php
function code( $input ){

$find[0] = "/\[b\](.*?)\[\/b\]/i";
$find[1] = "/\[url\=(.*)\](.*)\[\/url\]/";
$find[2] = "/\[u\](.*?)\[\/u\]/i";
$find[3] = "/\[i\](.*?)\[\/i\]/i";
$find[4] = "/\[big\](.*?)\[\/big\]/i";
$find[5] = "/\[small\](.*?)\[\/small\]/i";
$find[6] = "/\[shoutbox]id=(.*?)\[\/shoutbox\]/";

$replace[0] = "<b>$1</b>";
$replace[1] = "<a href=\"$1\">$2</a>";
$replace[2] = "<u>$1</u>";
$replace[3] = "<i>$1</i>";
$replace[4] = "<font size=\"5\">$1</font>";
$replace[5] = "<font size=\"2\">$1</font>";
$replace[6] = include("shoutbox.php?no=$1");
$change = preg_replace($find, $replace, $input);
echo $change;
}
code("[shoutbox]id=2[/shoutbox]");
?>


It doesnt replace the $1 with the shoutbox id and the error message is;


QUOTE
[b]Warning: include(shoutbox.php?no=$1) [function.include]: failed to open stream: No error in C:\wamp\www\replace\index.php on line 18

Warning: include() [function.include]: Failed opening 'shoutbox.php?no=$1' for inclusion (include_path='.;C:\php5\pear') in C:\wamp\www\replace\index.php on line 18

Notice from jlhaslip:
Moved to PHP Programming

Notice from truefusion:
Merging topics

Reply

truefusion
QUOTE(Tom743 @ Apr 15 2008, 12:17 PM) *
It doesnt replace the $1 with the shoutbox id

Even if it did replace the 1 variable, it still wouldn't work. As i've mentioned above, you cannot include files the way you want to. If you want to set $_GET['id'], you have to do so with the parent page.

Reply

Tom743
QUOTE(electriic ink @ Apr 13 2008, 04:19 PM) *
Wouldn't it be easier just to do this?

CODE
$string = '[shoutbox]id=1[/shoutbox]';
$string = str_replace ('[shoutbox]id=', '', $string);
$string = str_replace ('[/shoutbox]', '', $string);

include ('shoutbox.php?no=' . $string);


Using that you could create a seperate function:

CODE
function shoutbox_tag ($input) {

$string = strstr ($input, '[shoutbox]');    // Removes all parts of string that are NOT [shoutbox]...[/shoutbox]
$string = strstr ($string, '[/shoutbox]', true);
$string = $string . '[/shoutbox]'; // End remove

$string = str_replace ('[shoutbox]id=', '', $string);
$string = str_replace ('[/shoutbox]', '', $string);

return $string;

}


Which you would call as follows:

CODE
include ('shoutbox.php?no=' . shoutbox_tag('123123[shoutbox]id=1[/shoutbox]123123'));

Ok, but if im not just going to add a shoutbox code in there, i will post other tags like so then it wont work sad.gif

Reply

electriic ink
Sorry for neglecting your topic smile.gif

QUOTE(Tom743)
Ok, but if im not just going to add a shoutbox code in there, i will post other tags like so then it wont work


It does. That's what this part of the code does:

CODE
$string = strstr ($input, '[shoutbox]');    // Removes all parts of string that are NOT [shoutbox]...[/shoutbox]
$string = strstr ($string, '[/shoutbox]', true);
$string = $string . '[/shoutbox]'; // End remove


It removes all parts of input that are not [shoutbox]...[/shoutbox] and processes them separately. Unless you can see otherwise...

BTW, what truefusion is saying about including files (I don't think you understand - sorry if you do) is this:

You can't include a file like this:

CODE
include 'file.php?id=1';


And have the code in file.php as:

CODE
function ($_GET['id']);


It doesn't work. If you want to "give" a variable to an included file, you have to this:

CODE
$id = 1;
include 'file.php';


And have the code in file.php as:

CODE
function ($id);

Reply



Got an Opinion! Express your Views! (no registration):-
Add your Reply/ Opinion/ Views/ Comments/ Suggestion/ Questions/ Queries etc.
Posts with decent grammar & English will be accepted and please refrain from profanities.
For asking a Question, We recommend you to sign-up (for free) so that you can track the topic easily.

Nature of your Post*: Opinion/ Reply/ Comments
Question/Query
Feedback to us.
       
Name   Email
Title/Question*

(Maximum characters: 10,000)
You have characters left.
Confirm Code:

Similar Topics

Keywords : php replace


    Looking for php, replace

Searching Video's for php, replace
advertisement



Php Replace Help!



 

 

 

 

ADD REPLY / Got an Opinion! Remove these ADs! RAPID SEARCH! Free Web Hosting [X]
Express your Opinions, Thoughts or Contribute more info. to help others.
Ask your Doubts & Queries to get answers, So that "Together We can help others!"
Register FREE for AD-FREE forum, Create your own topics, Ask Questions, track topics, setup subscriptions & notifications and Get a Free Website w/ Email and FTP.
500MB Space *No Ads*, CPanel, FTP, PHP, MySQL, EMails - 100% FREE