Mange tak, det så ud til at virke :)
M. Sveegaard wrote:
> Som jeg ser det er der bare byttet rundt på sandt og falsk. Prøv:
>
> function is_binary($link)
> {
> $tmpStr = '';
> $fp = fopen($link, 'rb');
> $tmpStr = fread($fp, 256);
> fclose($fp);
>
> if($tmpStr != '')
> {
> $tmpStr = str_replace(chr(10), '', $tmpStr);
> $tmpStr = str_replace(chr(13), '', $tmpStr);
>
> $tmpInt = 0;
>
> for($i =0; $i < strlen($tmpStr); $i++)
> {
> if( extension_loaded('ctype') )
> {
> if( !ctype_print($tmpStr[$i]) )
> $tmpInt++;
> }
> else
> {
> if( !eregi("[[:print:]]+", $tmpStr[$i]) )
> $tmpInt++;
> }
> }
> if($tmpInt > 5)
> return true;
> else
> return false;
> }
> else
> return(0);
> }
>
> --
> mvh m.sveegaard
>
> Brian Schmidt wrote:
>
>> Jeg leder efter en metode til at kontrollere om en fil er binær eller
>> plaintext.
>>
>> Der findes ingen funktioner som jeg har kunnet finde der kan gøre dette.
>> mime_content_type() er desværre ikke tilgængelig ellers ville jeg have
>> brugt den.
>>
>> Jeg har prøvet funktionen beskrevet på php.net,
>>
http://dk2.php.net/manual/en/ref.filesystem.php#30152
>> <?php
>> function is_binary($str_file)
>> {
>> $str_tmp = '';
>> @$src_file = fopen($str_file, 'rb');
>> @$tmpStr = fread($src_file, 256);
>> @fclose($src_file);
>> if ($str_tmp != '') {
>> $str_tmp = str_replace(chr(10), '', $str_tmp);
>> $str_tmp = str_replace(chr(13), '', $str_tmp);
>> $int_tmp = 0;
>> for ($i = 0; $i < strlen($str_tmp); $i++) {
>> if (extension_loaded('ctype') &&
>> !ctype_print($str_tmp[$i])) {
>> $int_tmp++;
>> } elseif(!eregi("[[:print:]]+", $str_tmp[$i])) {
>> $int_tmp++;
>> }
>> }
>> if ($int_tmp > 5) {
>> return 0;
>> } else {
>> return 1;
>> }
>> } else {
>> return 0;
>> }
>> }
>> ?>
>>
>> men den ser ikke ud til at virke..
>>
>> Jeg håber at nogen ved hvad der skal kigges efter i en fil for at
>> bestemme om den er binær eller ej, og kan hjælpe mig med at skrive en
>> funktion til formålet.
>>
>> På forhånd tak.
>>
>> Med venlig hilsen
>>
>> Brian Schmidt
>
>