php cannot play when downloading flv files or mp4 files
I want to transfer the flv playback address or mp4 playback address through POST and then download it directly. Downloading is easy, and the POST data is received directly. The format of the data coming from POST is similar: http://a .com/1.flv, and then downloaded it through PHP. Two methods were tested (only the simplified code for downloading is posted):
<?php $url = implode($_POST); $file = file_get_contents($yes); header("Content-Disposition:attachment;filename=1.flv"); echo $file; ?>
or:
<?php $url = implode($_POST); header("Content-type:video/mpeg4"); header("Content-Disposition:attachment;filename=1.flv"); readfile($url); exit; ?>
Then the 1.flv file was successfully downloaded, but it did not work after downloading. It can be played. Use linux to download it directly from wget http://a.com/1.flv and you can play it. When opening the direct download through PHP, an error will appear:
Comparing the file size, it is found that there are 3 more bytes that cannot be played:
Then vim editor found that there are indeed 3 more bytes at the beginning of the file, but I don’t know how many there are, but you can play it by deleting these 3 bytes:
I searched online and couldn’t find the answer, and I couldn’t find anything about this. . I really don’t know what the problem is. Can a god help me to answer it = =
Solution:
These three characters are the legendary BOM
Indicate that the php file you are using to download is in UTF- format 8 with BOM, use Notepad++ to take a look,
or read out all your php files and then remove them?
/** * 移除字符串的BOM * * @param string $str 输入字符串 * @return string 输出字符串 */ function removeBOM($str) { $str_2 = substr($str, 0, 2); $str_3 = substr($str, 0, 3);//$str_2.$str{2}; $str_4 = substr($str, 0, 4);//$str_3.$str{3}; if ($str_3 == pack('CCC',0xef,0xbb,0xbf)) //utf-8 return substr($str, 3); elseif ($str_2 == pack('CC',0xfe,0xff) || $str_2 == pack('CC',0xff,0xfe)) //unicode return substr($str, 2); elseif ($str_4 == pack('CCCC',0x00,0x00,0xfe,0xff) || $str_4 == pack('CCCC',0xff,0xfe,0x00,0x00)) //utf-32 return substr($str, 4); return $str; }
Related articles:
PHP method to convert video to MP4 and get video preview
php method to use memcoder to convert video to mp4 format
PHP+FFMPEG to automatically convert video Encoded into H264 standard Mp4 file

PHPidentifiesauser'ssessionusingsessioncookiesandsessionIDs.1)Whensession_start()iscalled,PHPgeneratesauniquesessionIDstoredinacookienamedPHPSESSIDontheuser'sbrowser.2)ThisIDallowsPHPtoretrievesessiondatafromtheserver.

The security of PHP sessions can be achieved through the following measures: 1. Use session_regenerate_id() to regenerate the session ID when the user logs in or is an important operation. 2. Encrypt the transmission session ID through the HTTPS protocol. 3. Use session_save_path() to specify the secure directory to store session data and set permissions correctly.

PHPsessionfilesarestoredinthedirectoryspecifiedbysession.save_path,typically/tmponUnix-likesystemsorC:\Windows\TemponWindows.Tocustomizethis:1)Usesession_save_path()tosetacustomdirectory,ensuringit'swritable;2)Verifythecustomdirectoryexistsandiswrita

ToretrievedatafromaPHPsession,startthesessionwithsession_start()andaccessvariablesinthe$_SESSIONarray.Forexample:1)Startthesession:session_start().2)Retrievedata:$username=$_SESSION['username'];echo"Welcome,".$username;.Sessionsareserver-si

The steps to build an efficient shopping cart system using sessions include: 1) Understand the definition and function of the session. The session is a server-side storage mechanism used to maintain user status across requests; 2) Implement basic session management, such as adding products to the shopping cart; 3) Expand to advanced usage, supporting product quantity management and deletion; 4) Optimize performance and security, by persisting session data and using secure session identifiers.

The article explains how to create, implement, and use interfaces in PHP, focusing on their benefits for code organization and maintainability.

The article discusses the differences between crypt() and password_hash() in PHP for password hashing, focusing on their implementation, security, and suitability for modern web applications.

Article discusses preventing Cross-Site Scripting (XSS) in PHP through input validation, output encoding, and using tools like OWASP ESAPI and HTML Purifier.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

WebStorm Mac version
Useful JavaScript development tools

Dreamweaver Mac version
Visual web development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function
