I’m making a link and text service, but I have a problem, which is: there is only 1 input text form, and the user could paste something like this:
http:// asdf .com – which would register as a link, or ‘asdf http:// test .com‘ because of the http://, it would register as a url, or
asdf – which would register as a string, because it doesn’t contain http://
BUT my problem arises when the user writes something like:
asdf http://asdf.com, which in my current program outputs a “url” value. I’ve been experimenting for about an hour now, and I’ve got 3 bits of code (they were all in the same document being commented, so forgive me if they give errors!)
<?
$str = $_POST['paste'];
if(stristr($str, "http://")) {
$type = "url";
}
if(stristr($str, "https://")) {
$type = "url";
}
if($type!="url") {
$type = "string";
}
?>
Next:
<?
$type = "url";
if($type=="url"){
$t = substr($str, 8);
if(stristr($t, "https://")==$t){
$type = "url";}
if(stristr($t, "https://")==$t){
$type = "url";}
if(stristr($t, "http://")!=$t){
$type = "string";}
if(stristr($t, "https://")!=$t){
$type = "string";}
}
echo $type;
?>
Next:
<?
$url = "hasttp://cake.com";
if(stristr($url, "http://")=="") {
$type = "string"; } else {
$type = "url";
$sus = 1;}
if(stristr($url, "http://")==$url) {
$type = "url"; }
if($sus==1) {
$r = substr($url, 7);
if(stristr($r,"http://")!="http://") {
$type = "url"; }
if($r=="") {
$type = "string";
}
}
echo $type;
?>
I have no clue how I could go about classifying a string like ‘asdf http://asdf.com‘ as a string, whilst classifying ‘asdf‘ as a string, and classifying ‘http://asdf.com‘ as a url.. Another idea I haven’t tried yet is strpos, but that’s what I’m working on now.
Any ideas?
Thanks alot! 🙂
Some parts of this question are getting cut off for some reason, apologies!
This will match any value which starts with
http://orhttps://, and does not contain any space in it as typeurl. If the value does not start withhttp://orhttps://, or it contains a space in it, it will be typestring.