Я делаю ссылку и текстовый сервис, но у меня есть проблема: есть только 1 форма ввода текста, и пользователь может вставить что-то вроде этого:
http:// asdf .com
- который будет зарегистрирован как ссылка, или 'asdf http:// test .com
' из-за http://, он будет зарегистрирован как URL, или
asdf
- который будет зарегистрирован как строка, потому что он не содержит http://
НО моя проблема возникает, когда пользователь пишет что-то вроде:
asdf <a href="http://asdf.com" rel="nofollow">http://asdf.com</a>
, который в моей текущей программе выводит значение "url". Я экспериментирую уже около часа, и у меня есть 3 бита кода (все они были в одном документе с комментариями, так что простите, если они дают ошибки!)
<?
$str = $_POST['paste'];
if(stristr($str, "http://")) {
$type = "url";
}
if(stristr($str, "https://")) {
$type = "url";
}
if($type!="url") {
$type = "string";
}
?>
Далее:
<?
$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;
?>
Далее:
<?
$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;
?>
Я понятия не имею, как я могу классифицировать строку типа 'asdf <a href="http://asdf.com" rel="nofollow">http://asdf.com</a>
' как строку, а классифицировать asdf
как строку и классифицировать http://asdf.com
как URL-адрес. Еще одна идея Я еще не пробовал, но это то, над чем я сейчас работаю.
Есть идеи?
Большое спасибо! :)
Некоторые части этого вопроса почему-то обрезаются, извинения!