如何在laravel刀片模板中找到字符串

时间:2017-10-31 07:30:28

标签: laravel laravel-5

如何使用strpos

之类的东西检查数据

data-> url = www.youtube.come / 12345

@if($data->url != 'youtube' )

@endif

updated  how can i put this in my balde temp

preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=v\/)[^&\n]+(?=\?)|(?<=v=)[^&\n]+|(?<=youtu.be/)[^&\n]+|(?<=/videos/)[^&^/\n]+#", $line['YOUTUBE'], $matches);

        $videoId = $matches[0];

        if(substr_count($line['YOUTUBE'], "facebook.com") > 0){
          print "<div class=\"fb-video\" data-href=\"{$line['YOUTUBE']}\" data-allowfullscreen=\"true\" data-width=\"600\"></div>";
        }else{
          print "<iframe width=\"600\" height=\"350\" frameborder=\"0\" src=\"https://www.youtube.com/embed/{$videoId}?autoplay=1\"></iframe>";
        }

2 个答案:

答案 0 :(得分:3)

您可以使用strpos()strstr()(或者在适当时使用不区分大小写的变体),但您也可以使用基本上使用strpos() PHP内置方法的Laravel's str_contains()函数:

$contains = str_contains($line['YOUTUBE'], "facebook.com");

答案 1 :(得分:1)

您也可以在刀片中使用任何php函数...请参阅下面的示例:

 @if (strpos($data->url, 'youtube') !== false) {
   echo 'true';
 @endif

更新:在某些情况下,将PHP代码嵌入到您的视图中非常有用。您可以使用Blade @php指令在模板中执行纯PHP块:

@php
//
@endphp

虽然Blade提供此功能,但经常使用它可能是一个信号,表明您的模板中嵌入了太多逻辑。 参考:https://laravel.com/docs/5.4/blade#php 希望它会对你有所帮助。 :)