を解析し、私は抽出文字列からのリンクや配列にそれらを入れて、それらに
function clickable_link($text)
{
$text = preg_replace('#(script|about|applet|activex|chrome):#is', "\\1:", $text);
$ret = ' ' . $text;
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,[email protected]\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\" rel=\"nofollow\" id=\"LinkWordWarp\">\\2</a>", $ret);
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,[email protected]\[\]+]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\" rel=\"nofollow\" id=\"LinkWordWarp\">\\2</a>", $ret);
$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\[email protected]\\3\">\\[email protected]\\3</a>", $ret);
return $ret;
}
のように見え、正常に動作した文字列からクリック可能なすべての私のリンクを作ったPHPで少し正規表現のスクリプトを持っていますが、私は
<iframe width="425" height="349" src="http://www.youtube.com/embed/youtube" frameborder="0" allowfullscreen></iframe>
として(ユーチューブリンクがある場合)
<a href=youtube>youtube</a>
ではなく、として彼を作るしないようにするとき、そのYouTubeのリンクをチェックしたい、小さな調整をしたいと思います
と
<img src="link" />
それはイメージである場合。
ご協力いただければ幸いです。
は、私はすべてのことのために小さなスクリプトを書きましたが、その遅すぎる!!!!!!!!!います
<?php
function MakeContentInteractive($string)
{
$order = array("<br>", "<br/>", "<br />");
$replace = ' <br/> ';
$string = str_replace($order, $replace, $string);
$firstImageSetted = false;
$firstImage = "";
$allval = "";
$pieces = explode(" ", $string);
$regex = "^(((ht|f)tp(s?))\://)?(www.|[a-zA-Z].)[a-zA-Z0-9\-\.]+\.(com|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk|co|tk)(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\;\?\'\\\+&%\$#\=~_\-]+))*$^"; // SCHEME
$i=0;
foreach($pieces as $val)
{
echo $val."<hr>";
$i++;
$url = $val;
$url = str_replace(" ", "+", $url);
$strlen = strlen($url);
$ext = substr($val,$strlen-4,$strlen);
$random = rand(1000000,9000000);
if(preg_match($regex, $url))
{
/*CHECK IF IS YOUTUBE*/
$pos = strpos($url,"youtube.com");
if ($pos !== false)
{
//retrive video from link
$videoLink = $val;
$videoLinkPharser = $videoLink;
$videoLinkPharser = substr($videoLinkPharser, 2, 42);
$vid = substr($videoLinkPharser, -11, 42);
//check if youtube link is valid
$youtubeId = $vid;
// Check if youtube video item exists by the existance of the the 200 response
$headers = get_headers('http://gdata.youtube.com/feeds/api/videos/' . $vid);
if (!strpos($headers[0], '200'))
{
$valid = 0;
}
else
{
$isYoutube = 1;
$valid = 1;
$code = '<div id="YoutubeLink"><iframe width="425" height="349" src="http://www.youtube.com/embed/'.$vid.'" frameborder="0" allowfullscreen></iframe></div>';
$allval = $allval.$code;
}
}
if(!$isYoutube == 1)
{
$url=trim($url);
/*CHECK IF IS PICTURE*/
$mime = getimagesize($url);
$mime = $mime['mime'];
if($mime == "image/gif" or $mime == "image/jpeg" or $mime == "image/png")
{
echo $url;
if(exif_imagetype($url) == IMAGETYPE_GIF and $ext == ".gif")
{
$isPicture = 1;
$filename =$random.basename($url);
$code = '<div id="CategoryPicture"><img src="'.$val.'" width="100" height="100" /><div>';
$allval = $allval.$code;
if($firstImageSetted == false)
{
$firstImage=$val;
$firstImageSetted = true;
}
}
if(exif_imagetype($url) == IMAGETYPE_JPEG and $ext == ".jpg")
{
$isPicture = 1;
$filename =$random.basename($url);
$code = '<div id="CategoryPicture"><img src="'.$val.'" width="100" height="100" /><div>';
$allval = $allval.$code;
if($firstImageSetted == false)
{
$firstImage=$val;
$firstImageSetted = true;
echo "JPG!";
}
}
if(exif_imagetype($url) == IMAGETYPE_PNG and $ext == ".png")
{
$isPicture = 1;
$filename =$random.basename($url);
$code = '<div id="CategoryPicture"><img src="'.$val.'" width="100" height="100" /><div>';
$allval = $allval.$code;
if($firstImageSetted == false)
{
$firstImage=$val;
$firstImageSetted = true;
}
}
}
}
/*IF not YOUTUBE or PICTURE then it's a link*/
if(!$isYoutube == 1 and !$isPicture == 1)
{
$text = preg_replace('#(script|about|applet|activex|chrome):#is', "\\1:", $url);
$ret = ' ' . $text;
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,[email protected]\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\" rel=\"nofollow\" id=\"LinkWordWarp\">\\2</a>", $ret);
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,[email protected]\[\]+]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\" rel=\"nofollow\" id=\"LinkWordWarp\">\\2</a>", $ret);
$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\[email protected]\\3\">\\[email protected]\\3</a>", $ret);
$code = '<a href="'.$url.'">'.$url.'</a>';
$allval = $allval.$ret;
}
$isYoutube = 0;
$isPicture = 0;
}
else
{
$allval = $allval.$val;
}
}
echo "and the first image is: ".$firstImage."<br/>";
return $allval;
}
?>
そして、exifとgetimageのサイズ(画像あたり3秒!!!)で画像をチェックするのが遅いのですが、どうすれば解決できますか?
私の編集をチェックし、私はスクリプトを書きましたが、そのTOO SLOWW!画像あたり3秒... – Master345
私の答えを更新しました。あなたのコードは少し間違っていたと思います。配列としてpreg_replaceを引数として使用することを検討してください。少なくともイメージ以外のタスクの場合。私は実際に画像ではなく利用するか何かであるかどうかを確認したいので、画像の一部が、遅い場合 – Hnatt
ユーチューブとリンク部は、唯一のチェックは非常に高速です。最初にコピー(server_path、my_server)してそこからチェックするのは安全だと思いますか?私はちょうど怒っているとセキュリティに狂っている... – Master345