10.02.2018 18:42
1
Dobrý den, mám takovou PHP aplikaci, kde mohou lidé vložit URL adresu videa na youtube a web vygeneruje náhled video z YouTube a vloží jen na web. Používám na webu HTTPS, jenže když chce někdo video přehrát, zobrazí se prázdná stránka, neboť prohlížeč hlásí, že web se pokouší načít script z nezabezpečené stránky. Video z YouTube je spuštěno v HTTP.

Mám níže uvedený kód, nevíte prosím jestli v něm chyba a jaká? Nemohu na to zaboha přijít. Děkuji Martin

PHP kód:
    static function createClickableLinks($matches)
    {
        $title = $face = $matches[0];

        $face = helper::truncate($face, 50);

        $matches[0] = str_replace( "www.", "http://www.", $matches[0] );
        $matches[0] = str_replace( "http://http://www.", "http://www.", $matches[0] );
        $matches[0] = str_replace( "https://http://www.", "https://www.", $matches[0] );

        return "<a title=\"$title\" class=\"posted_link\" target=\"_blank\" href=/go/?to=$matches[0]>$face</a>";
    }

    static function createPostClickableLinks($matches)
    {
        if (preg_match('/(?:http?:\/\/)?(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=)?([\w\-]{6,12})(?:\&.+)?/i', $matches[0], $results)) {

            $video_preview = "https://img.youtube.com/vi/".$results[1]."/0.jpg";

            ob_start();

            ?>

            <div>
                <div class="post-video" onclick="Video.playYouTube(this, '<?php echo $results[1]; ?>'); return false;">
                    <img style="" src="<?php echo $video_preview?>">
                    <span class="video-play"></span>
                </div>
            </div>

            <?php

            
return $html ob_get_clean();

        } else {

            
$title $face $matches[0];

            
$face helper::truncate($face50);

            
$matches[0] = str_replace"www.""http://www."$matches[0] );
            
$matches[0] = str_replace"http://http://www.""http://www."$matches[0] );
            
$matches[0] = str_replace"https://http://www.""https://www."$matches[0] );

            return 
"<a title=\"$title\" class=\"posted_link\" target=\"_blank\" href=/go/?to=$matches[0]>$face</a>";
        }
    }

    static function 
processText($text)
    {
10.02.2018 18:47
2
no vsade nahradzas "http"-ckom tak o com?
10.02.2018 18:55
3
Původně odeslal node
no vsade nahradzas "http"-ckom tak o com?
Nerozumím co / jak myslíš
12.02.2018 01:31
4
Jen takova rychlooprava...
Kód:
    static function createClickableLinks($matches) 
    { 
        $title = $face = $matches[0]; 

        $face = helper::truncate($face, 50); 

        $matches[0] = str_replace( "www.", "http://www.", $matches[0] );
        $matches[0] = str_replace( "http://http://www.", "http://www.", $matches[0] ); 
        $matches[0] = str_replace( "https://http://www.", "https://www.", $matches[0] ); 
$matches[0] = str_replace( "http:", "https:", $matches[0] ); 

        return "<a title=\"$title\" class=\"posted_link\" target=\"_blank\" href=/go/?to=$matches[0]>$face</a>"; 
    } 

    static function createPostClickableLinks($matches) 
    { 
        if (preg_match('/(?:http?:\/\/)?(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=)?([\w\-]{6,12})(?:\&.+)?/i', $matches[0], $results)) { 

            $video_preview = "https://img.youtube.com/vi/".$results[1]."/0.jpg"; 

            ob_start(); 

            ?> 

            <div> 
                <div class="post-video" onclick="Video.playYouTube(this, '<?php echo $results[1]; ?>'); return false;"> 
                    <img style="" src="<?php echo $video_preview; ?>"> 
                    <span class="video-play"></span> 
                </div> 
            </div> 

            <?php 

            return $html = ob_get_clean(); 

        } else { 

            $title = $face = $matches[0]; 

            $face = helper::truncate($face, 50); 

            $matches[0] = str_replace( "www.", "http://www.", $matches[0] ); 
            $matches[0] = str_replace( "http://http://www.", "http://www.", $matches[0] ); 
            $matches[0] = str_replace( "https://http://www.", "https://www.", $matches[0] ); 
$matches[0] = str_replace( "http:", "https:", $matches[0] ); 

            return "<a title=\"$title\" class=\"posted_link\" target=\"_blank\" href=/go/?to=$matches[0]>$face</a>"; 
        } 
    }