JoshPowell
asked on
"Dialectizer" in PHP.. fun project :D
OK, so I am trying to make my own Dialectizer type thing (based on the concept behind http://rinkworks.com/dialect/ )
I am usually pretty PHP competent, but this time I have failed.
Basically what I need it to do, is get a URL, and replace any instance of abc with xyz. I got that far.
Heres are the things I can't figure out (not yet anyway),
It must convert all relative image and CSS links to absolute links pointing to where they should
It has to point all relative links through the dialectizer as well
So, I thought I would throw it out here and see if anyone could help me out with the code..
Heres my code so far:
<?php
if ($_GET['url']) {
// grab out put from page
ob_start();
include($_GET['url']);
$pagecontent = ob_get_contents();
ob_end_clean();
// modify output
$pagecontent = eregi_replace("http://" , 'index.php?url=http://', $pagecontent);
$pagecontent = eregi_replace("ing", "in'", $pagecontent);
$pagecontent = eregi_replace("and", "an'", $pagecontent);
$pagecontent = eregi_replace("for", "fo'", $pagecontent);
$pagecontent = eregi_replace("broken", "busted", $pagecontent);
$pagecontent = eregi_replace("what", "whut", $pagecontent);
$pagecontent = eregi_replace("ever", "evah", $pagecontent);
$pagecontent = eregi_replace("tion", "shun", $pagecontent);
$pagecontent = eregi_replace("potatoe", "tater", $pagecontent);
//etc..
// write output to page
echo $pagecontent;
} else {
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Dialectizer</title>
</head>
<body>
<form method="get" action="<?php echo($_SERVER['PHP_SELF']) ; ?>">
<input name="url" type="text" /><br />
<input name="submit" type="submit" value="Dialectize It!" />
</form>
</body>
</html>
<?php } ?>
Josh
I am usually pretty PHP competent, but this time I have failed.
Basically what I need it to do, is get a URL, and replace any instance of abc with xyz. I got that far.
Heres are the things I can't figure out (not yet anyway),
It must convert all relative image and CSS links to absolute links pointing to where they should
It has to point all relative links through the dialectizer as well
So, I thought I would throw it out here and see if anyone could help me out with the code..
Heres my code so far:
<?php
if ($_GET['url']) {
// grab out put from page
ob_start();
include($_GET['url']);
$pagecontent = ob_get_contents();
ob_end_clean();
// modify output
$pagecontent = eregi_replace("http://" , 'index.php?url=http://', $pagecontent);
$pagecontent = eregi_replace("ing", "in'", $pagecontent);
$pagecontent = eregi_replace("and", "an'", $pagecontent);
$pagecontent = eregi_replace("for", "fo'", $pagecontent);
$pagecontent = eregi_replace("broken", "busted", $pagecontent);
$pagecontent = eregi_replace("what", "whut", $pagecontent);
$pagecontent = eregi_replace("ever", "evah", $pagecontent);
$pagecontent = eregi_replace("tion", "shun", $pagecontent);
$pagecontent = eregi_replace("potatoe", "tater", $pagecontent);
//etc..
// write output to page
echo $pagecontent;
} else {
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Dialectizer</title>
</head>
<body>
<form method="get" action="<?php echo($_SERVER['PHP_SELF'])
<input name="url" type="text" /><br />
<input name="submit" type="submit" value="Dialectize It!" />
</form>
</body>
</html>
<?php } ?>
Josh
ASKER
Thanks.. I will read up on those functions :)
Josh
Josh
ASKER
So does anybody know how to convert relative style/image URLs in to absolute =P
Josh
Josh
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Objection!
I didn't mean to abandon this.. I was just waiting for someone to awnser :P
Thanks for your help krazywest , I will play around with that code :)
Josh
I didn't mean to abandon this.. I was just waiting for someone to awnser :P
Thanks for your help krazywest , I will play around with that code :)
Josh
Just so you know, the problem I was having was that strpos("string","stringmon keybob") was returning FALSE instead of 0 (like it should).
Ie.
if (strpos($scriptpath,$match es[1])==1)
return "FISH";
Change that to:
if (strpos($scriptpath,$match es[1])===0 )
return $matches[1];
And then debug it. ;)
Ie.
if (strpos($scriptpath,$match
return "FISH";
Change that to:
if (strpos($scriptpath,$match
return $matches[1];
And then debug it. ;)
ASKER
Ah, thanks :)
You have proven most helpfull.. I shall start work on my script now :D
Josh
You have proven most helpfull.. I shall start work on my script now :D
Josh
$in=array('ing', 'and', 'for'); //etc
$out = array('in', 'an', 'fo');
$translation = preg_replace($in, $out, $pagecontent);
You only need to redirect <a> tag links through your script, so your search for "http" etc is too wide. Try:
$pagecontent = preg_replace('/(<\s*a\s+.*
This also copes with links where the href is not the first attribute in an a tag, varying spacing, case insentitive.
You still need to convert images and CSS style or link meta tags to absolute URLs, along with form submission actions - I'll leave that for someone else, but you might find parse_url() and realpath() useful.