我们说我发布以下内容:
喜欢这条推文 https://twitter.com/yarratrams/status/489336308423491584
然后下面的脚本将运行以下代码的以下部分:
$string=str_replace($links[$j],'<a href="'.$links[$j].'" rel="nofollow" target="_blank">'.$links[$j].'</a>',$string).$stats->html;
它最终会像以下一样
Love this tweet <a href="https://twitter.com/yarratrams/status/489336308423491584" rel="nofollow" target="_blank">https://twitter.com/yarratrams/status/489336308423491584</a><iframe id="twitter-widget-0" scrolling="no" frameborder="0" allowtransparency="true" class="twitter-tweet twitter-tweet-rendered" title="Embedded Tweet" height="186" style="display: block; max-width: 99%; min-width: 220px; padding: 0px; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; margin: 10px 0px; border-color: rgb(238, 238, 238) rgb(221, 221, 221) rgb(187, 187, 187); border-width: 1px; border-style: solid; box-shadow: rgba(0, 0, 0, 0.14902) 0px 1px 3px; position: static; visibility: visible; width: 500px;"></iframe>
<script async="" src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
我想在<p></p>
中加入以下部分:
喜欢这条推文https://twitter.com/yarratrams/status/489336308423491584
所以最终结果应该是这样的
<p>Love this tweet <a href="https://twitter.com/yarratrams/status/489336308423491584" rel="nofollow" target="_blank">https://twitter.com/yarratrams/status/489336308423491584</a></p><iframe id="twitter-widget-0" scrolling="no" frameborder="0" allowtransparency="true" class="twitter-tweet twitter-tweet-rendered" title="Embedded Tweet" height="186" style="display: block; max-width: 99%; min-width: 220px; padding: 0px; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; margin: 10px 0px; border-color: rgb(238, 238, 238) rgb(221, 221, 221) rgb(187, 187, 187); border-width: 1px; border-style: solid; box-shadow: rgba(0, 0, 0, 0.14902) 0px 1px 3px; position: static; visibility: visible; width: 500px;"></iframe>
<script async="" src="//platform.twitter.com/widgets.js" charset="utf-8"></script> </div>
当有人发表评论并包含推文,YouTube或Vimeo链接或将图片上传到我们的亚马逊服务器时,我目前正在执行以下操作:
function autolink($string,$uid = null){
// force http: on www.
$string = str_ireplace( "twitter.com", "http://twitter.com", $string );
$string = str_ireplace( "http://twitter.comhttp://twitter.com", "http://twitter.com", $string );
$string = str_ireplace( "www.", "http://", $string );
$string = str_ireplace( "http://http://", "http://", $string );
// eliminate duplicates after force
$string = str_ireplace( "http://http://www.", "http://", $string );
$string = str_ireplace( "https://http://www.", "https://", $string );
// The Regular Expression filter
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
// Check if there is a url in the text
$m = preg_match_all($reg_exUrl, $string, $match);
if ($m) {
$links=$match[0];
for ($j=0;$j<$m;$j++) {
if(substr($links[$j], 0, 14) == 'http://youtube'){
$string=str_replace($links[$j],'<a href="'.$links[$j].'" rel="nofollow" target="_blank">'.$links[$j].'</a>',$string).'<div class="embed-container"><iframe src="//www.youtube.com/embed/'.substr($links[$j], -11).'" frameborder="0"></iframe></div>';
}
elseif(substr($links[$j], 0, 12) == 'http://vimeo'){
$status = file_get_contents("http://vimeo.com/api/oembed.json?url=".$links[$j]);
$vim = json_decode($status);
$embed = preg_replace(array('/width="\d+"/i', '/height="\d+"/i'),array('', ''),$vim->html);
//$string = "https://api.twitter.com/1/statuses/oembed.json?url=".$links[$j];
$string=str_replace($links[$j],'<a href="'.$links[$j].'" rel="nofollow" target="_blank">'.$links[$j].'</a>',$string)."<div class='embed-container'>".$embed."</div>";
}
elseif(substr($links[$j], 0,16) == 'http://au.images')
{
$string=str_replace($links[$j],null,$string).'<div class="imgover"><a href="'.$links[$j].'" data-rel="shadowbox['.rand(0,57475676).']"><img alt="'.$links[$j].'" src="'.$links[$j].'"></a></div>';
}
elseif(substr($links[$j], 0,16) == 'http://instagram')
{
http://api.instagram.com/oembed?url=http://instagram.com/p/V8UMy0LjpX/
$status = file_get_contents("http://api.instagram.com/oembed?url=".$links[$j]);
$stats = json_decode($status);
//$string = "https://api.twitter.com/1/statuses/oembed.json?url=".$links[$j];
if(isset($stats->errors))
{
}
else
$string=str_replace($links[$j],'<a href="'.$links[$j].'" target="_blank">'.$links[$j].'</a>',$string).'</p><div class="imgover"><a href="'.$stats->url.'" data-rel="shadowbox['.rand(0,57475676).']"><img alt="'.$links[$j].'" src="'.$stats->url.'" ></a></div>';
}
elseif(substr($links[$j], 0, 15) == 'https://twitter'){
$status = file_get_contents("https://api.twitter.com/1/statuses/oembed.json?url=".$links[$j]);
$stats = json_decode($status);
//$string = "https://api.twitter.com/1/statuses/oembed.json?url=".$links[$j];
if(isset($stats->errors))
{
}
else
$string=str_replace($links[$j],'<a href="'.$links[$j].'" rel="nofollow" target="_blank">'.$links[$j].'</a>',$string).$stats->html;
}
else{
$string=str_replace($links[$j],'<a href="'.$links[$j].'" rel="nofollow" target="_blank">'.$links[$j].'</a>',$string);
}
}
}
但是我的问题是我想在未更改的字符串周围放置一个<p></p>
- 就像我在外部div上放置填充一样,它似乎移动了所有内部DIV,这是修复它的一种方法是将<p></p>
仅放在修改后的字符串之前的文本中。
答案 0 :(得分:0)
@thx给Daniel Sirakoff 这是使用他评论的代码
后的正确代码 $string=str_replace($links[$j],'<a href="'.$links[$j].'" rel="nofollow" target="_blank">'.$links[$j].'</a>','<p>'.$string.'</p>').'<div class="twitterembed">'.$stats->html.'</div>';
答案 1 :(得分:-1)
您好,您可以像echo '<p>'.$string.'</p>';