Jump to content
php.lv forumi

dabūt tekstu pēc konkrēta simbola


KarlisBa

Recommended Posts

Sveiki!

Kaut kā nenesās prāts uz to kā dabūt tekstu, kas ir aiz konkrēta simbola. Piemēram, ir "fails.txt" un man ir vajadzīgs dabūt tikai to kas ir aiz simbola "." jeb respektīvi burtus "txt". Vēl konkrētāk, ka šis vārds tiek ņemts no $_FILES funkcijas un kā saprotat runa ir par failiem kā tādiem. Cik skatījos, tad ir iespējams dabūt tikai faila tipa datus, bet ne pašus paplašinājuma burtus. Ja ir kādas idejas kā to dabūt vai kāds gatavs alternatīvs lūdzu padalieties ar informāciju.

Link to comment
Share on other sites

vispar jau uz tiem faila paplasinajumiem parak paljauties nedriikst, jo ja panjemsi pedejos simbolus kas ir aiz PEDEJA punkta tad var sanakt visaadi ..

Ljoti daudz Trojanji isplatas tiesji peec principa smuka_meitene.exe.jpg .. njemot paplasinajumu dabuusi ka tas ir JPG bet isteniibaa EXE ..

------

Optimalak ir tomer saliidzinat failu tipu ( kautgan nevienmer tas dod Velamo UN PAREIZO rezultatu )

-----------

Link to comment
Share on other sites

Trojāņi izskatās pēc skaista_meitene.jpg.exe, nevis otrādāk. Un uz Win sistēmām tiek ņemts vērā tikai pēdējais paplašinājums (ja vien kāda programma nav sevi reģistrējusi par .exe.jpg handleri). Paplašinājumu es parasti iegūstu ar:

$str=substr($file,strrpos($file,'.')+1);

 

IMHO optimālāk ir skatīties vai nu pēc $_FILES['userfile']['type'], vai http://lv.php.net/manual/en/function.mime-content-type.php. Taču vispirms tāpat vajag čekot vai paplašinājums nesakrīt ar izpildāmo failu paplašinājumiem (ja kāds uploados image.php failu, un tu vadīsies tikai pēc $_FILES masīvā esošā tipa, ko sūta pārlūks, ja bilde tiks saglabāta ar +x permisiju, tad viņu varēs izpildīt uz servera).

Edited by fest
Link to comment
Share on other sites

$str=substr($file,strrpos($file,'.')+1); - galīgi nelabs variants, jo manu failu failu var saukt arī "mana.bilde.jpg" un tml. Tad jau extension'a noteikšanai labāl izmanto kaut ko šādu: $ext = end(explode(".", $file));

Link to comment
Share on other sites

Daži gudrenieki alkst izgudrot divriteni no jauna un vēl strīdās par to, kuram garāks.

Ir tāds teiciens, ka ja tu esi mudaks, neved otru mudaku maldināšanā :)

 

 

 
$extension = pathinfo($path, PATHINFO_EXTENSION);

 

Fest piemērs ēd zemi aiz tā iemesla, ja failam nav paplašinājuma (unix-like, anī one know that ?), atgriezīs substr($file, 0 + 1), jebšu visu, atskaitot pirmo simbolu . FAIL.

 

Marcis piemērs FAIL, jo tādā gadījumā, ja nav paplašinājuma, atgriezīs faila nosaukumu .

 

 

 

fest, mime_content_type ir deprecated . Respektīvi, saglabāts tikai priekš backward compability . Normālāks, OO stila un customizējams risinājums ir http://lv.php.net/fileinfo . Bez tam, vienam mime typam var atbilst vairāki extensioni (Like, .JPG, .JPEG ?) un lai no mimetype dabūtu extensionu būtu jāvelk diezgan normāla vārdnīca līdzi. I arī čekošana pēc mime typa ne vienmēr nostrādā (Anībody rememberz uzing GIF imagez as PHP shellz, 1337 gayz ? http://www.builderau.com.au/news/soa/PHP-e...39278850,00.htm ), jo mime-type tiek noteikts pēc pāris maģiskiem baitiem faila sākumā.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...