NetVision-Technik

NetVision-Technik (http://www.netvision-technik.de/forum/index.php)
-   Off-Topic (http://www.netvision-technik.de/forum/forumdisplay.php?f=44)
-   -   NFO Problem (http://www.netvision-technik.de/forum/showthread.php?t=6236)

Entity 03.04.2011 12:05

OK funktioniert soweit nur bei deiner funktion macht er nicht das richtige NFO Bild

bei deinem hab ich nur ein Bild mit dem Text /tmp/php9loALc

tantetoni2 03.04.2011 12:23

naja ist ja auch klar der erste parameter der funktion gen_nfo_pic ist ja auch der text, sorry dann so

PHP-Code:

if( !empty( $_FILES['nfo'] ) && $_FILES['nfo']['error'] < && 
    
preg_match'/(' $allowdExtensions ')/i'strrchr $_FILES['nfo']['name'], '.' ) ) ) { 
    
$nfo str_replace"\x0d\x0d\x0a""\x0d\x0a"file_get_contents$_FILES['nfo']['tmp_name'] ) );
    if ( 
gen_nfo_pic$nfo$GLOBALS['TORRENTNFO_DIR'] . '/nfo-' $id '.png' ) )  {
        
tr_status'ok' );
    }
    else {
        
tr_status'err' );
        if ( 
file_exists$GLOBALS['TORRENTNFO_DIR'] . '/nfo-' $id '.png' ) ) {
            
unlink$GLOBALS['TORRENTNFO_DIR'] . '/nfo-' $id '.png' );
        }
    }

else {
    
tr_status'err' );



Entity 03.04.2011 12:31

Ok Super funktioniert nun. Deins ist übersichtlicher wie meins :-)

vor der { am ende nur noch ne ) wegnehmen dann passt es
PHP-Code:

    if ( gen_nfo_pic$nfo$GLOBALS['TORRENTNFO_DIR'] . '/nfo-' $id '.png' ) )  { 

danke Dir tantetoni2

Stifler 03.04.2011 13:52

PHP-Code:

if(!$nfo_error) {... 

reicht absolut für seine und andere Bedürfnisse aus!
weil 0 -> "Value: 0; There is no error, the file uploaded with success."
und alles was über 0 geht ist true!! 0 ist false!
preg_match bei so einer überprüfung zu verwenden halte ich für unsinn.. da ist das array + in_array wesentlich schneller!

Aber jeder wie er glaubt

tantetoni2 03.04.2011 14:40

na dann mach mal ein test, in_array ist ne mächtige performence bremse prüfe mal if ( 0 === false )

vielleicht solltest du dich nochmal mit opperanden und Operatoren beschäftigen

Stifler 03.04.2011 14:54

PHP-Code:

if(in_array('html',array('htm','html','shtm','shtml'))) 

und

PHP-Code:

if(preg_match('/^.*htm.*$/','html')) 

for Schleife mit $i<=6000

Fazit in_array ist ca. 40% schneller!

preg_match() = 0.1394340000
in_array() = 0.1061300000

Würde dir mal Gut tun nicht immer aus Jux und Tollerei den Obergscheiten raushängen zu lassen und hin und wider mal zur Kenntnis nehmen dass ein anderer auch Recht hat!
Das macht zwar Eindruck bei den Anfängern ist aber extremst ärgerlich bei Leuten die sich auch auskennen!

Das RegEx ne langsame Gurcke sollte jeder wissen und mit Arrays zu Arbeiten wo man kann ist auch nicht verkehrt!

tantetoni2 03.04.2011 15:49

ämm ich bin von deinen
PHP-Code:

end(explode("."strtolower($nfo['name']))) 

ausgegangen, allerdings kommt das auch immer auf die situation an, viele wissen nich mal das in_array sämtliche sachen wie eine sting vergleich macht, aber einzeln wie dein beispiel oben ist es natürlich schneller.
es gibt viele situationen wo preg_match schneller ist als in_array wenn ich es finde kann ich nachher mal ein sehr gute bespiel posten

PHP-Code:

function microtime_float() {
   list(
$usec$sec) = explode(" "microtime());
   return ((float)
$usec + (float)$sec);
}

$ext strrchr 'abcs.shtml''.' );
echo 
'extension: ' $ext;

$s microtime_float();
for ( 
$i 0$i 2000; ++$i ) {
    if( 
in_arrayend(explode("."strtolower('abcs.shtml'))) , array('htm','html','shtm','shtml') ) )
       continue;
}
echo 
'<br /><br />' . (microtime_float()-$s);


$s microtime_float();
for ( 
$i 0$i 2000; ++$i ) {
    if( 
preg_match'/s?html?/i' ,strrchr 'abcs.shtml''.' ) ) ) 
        continue;
}
echo 
'<br /><br />' . (microtime_float()-$s); 

wenn du die funktionen für die dateiendungen nicht in die schleife packen würdst wäre in_array wieder schneller es kommt auf die situation drauf an

was natürlich noch besser ist ist folgendes

PHP-Code:

$extensions array_flip( array( '.html','.htm''.shtml''.shtm' ) );
$ext strrchr 'abcs.shtml''.' );
echo 
'extension: ' $ext;

$s microtime_float();
for ( 
$i 0$i 2000; ++$i ) {
    if( isset( 
$extensions[$ext] ) )
       continue;
}
echo 
'<br /><br />' . (microtime_float()-$s); 


Stifler 03.04.2011 16:08

So oder so nicht alles schlecht reden was ich poste!!

TUT sein Dienst! &copy; by Zero

tantetoni2 03.04.2011 16:10

ich rede doch nicht alles schlecht, deine idee mit dem like was zb astrein, auch wenns nicht besonders abgesichert war, aber wenn du zb 20 erweiterungen in dem array hast ist es langsamer als das preg_match beispiel
PHP-Code:

function microtime_float() {
   list(
$usec$sec) = explode(" "microtime());
   return ((float)
$usec + (float)$sec);
}

$ext end(explode("."strtolower('abcs.shtml')));
$s   microtime_float();

for ( 
$i 0$i 2000; ++$i ) {
    if( 
in_array(  $ex, array('htm','html','shtm','shtml''txt''doc','zip','rar','rtf''php') ) )
       continue;
}
echo 
'<br /><br />in_array: ' . (microtime_float()-$s);

$ext strrchr 'abcs.shtml''.' );
$s   microtime_float();

for ( 
$i 0$i 2000; ++$i ) {
    if( 
preg_match'/s?html?|txt|doc|zip|rar|rtf|php/i' ,$ext ) ) 
        continue;
}
echo 
'<br /><br />preg_match: ' . (microtime_float()-$s); 

die masse machts ;)

Stifler 03.04.2011 16:32

WIe du sagst es kommt auf den Zweck an aber ich finde es ist nicht zu viel verlangt wenn eine nfo auf die Endung .nfo hat und deshalb wäre es auch nur 1 Endung zum überprüfen im Array.
Man könnte auch den Mime Type überprüfen text/plain ich mach das z.B bei der Torrent Datei!

PHP-Code:

if(!isset($dict) || $ftype != "application/x-bittorrent") {
    
torrent_error("Das ist keine gültige Torrent-Datei!");




Alle Zeitangaben in WEZ +1. Es ist jetzt 22:16 Uhr.

Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2025, vBulletin Solutions, Inc.