如何在Laravel Blade模板中查找字符串

3

如何使用类似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>";
        }

你尝试使用过strpos吗?@if(strpos($data->url, 'youtube') ===false) - bumperbox
2个回答

4
你可以使用 strpos()strstr()(或者在适当时使用它们的不区分大小写的变体),但是你还可以使用Laravel 的str_contains()函数,该函数基本上使用了 PHP 中的 strpos() 原生方法:
$contains = str_contains($line['YOUTUBE'], "facebook.com");

3

您也可以在Blade中使用任何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 希望对您有所帮助。 :)

谢谢您,先生。 - test1321
这就是我的答案 :) - Junaid Ahmad
1
请不要称呼我(或任何人)先生,这很奇怪 :D 这里的每个人都在学习,有些是新手,有些是老手,这是唯一的区别。 - Junaid Ahmad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接