PicoFeed\Filter\Attribute::removeYouTubeAutoplay PHP Méthode

removeYouTubeAutoplay() public méthode

Removes YouTube autoplay from iframes.
public removeYouTubeAutoplay ( string $tag, array $attribute, string &$value ) : boolean
$tag string Tag name
$attribute array Atttributes name
$value string Attribute value
Résultat boolean
    public function removeYouTubeAutoplay($tag, $attribute, &$value)
    {
        $regex = '%^(https://(?:www\\.)?youtube.com/.*\\?.*autoplay=)(1)(.*)%i';
        if ($tag === 'iframe' && $attribute === 'src' && preg_match($regex, $value)) {
            $value = preg_replace($regex, '${1}0$3', $value);
        }
        return true;
    }

Usage Example

 public function testRemoveYouTubeAutoplay()
 {
     $filter = new Attribute(new Url('http://google.com'));
     $urls = array('https://www.youtube.com/something/?autoplay=1' => 'https://www.youtube.com/something/?autoplay=0', 'https://www.youtube.com/something/?test=s&autoplay=1&a=2' => 'https://www.youtube.com/something/?test=s&autoplay=0&a=2', 'https://www.youtube.com/something/?test=s' => 'https://www.youtube.com/something/?test=s', 'https://youtube.com/something/?autoplay=1' => 'https://youtube.com/something/?autoplay=0', 'https://youtube.com/something/?test=s&autoplay=1&a=2' => 'https://youtube.com/something/?test=s&autoplay=0&a=2', 'https://youtube.com/something/?test=s' => 'https://youtube.com/something/?test=s');
     foreach ($urls as $before => $after) {
         $filter->removeYouTubeAutoplay('iframe', 'src', $before);
         $this->assertEquals($after, $before);
     }
 }