[ SmilieBG @ 02.03.2006. 23:38 ] @
Ako tražite gotove skripte, što besplatne što komercijalne, potražite u forumu Web aplikacije.

Ako želite da vam neko drugi napiše veb aplikaciju u PHP-u, okačite oglas u forumu IT berza poslova.

Pogledajte i arhivu ovog foruma, bilo je sličnih tema pre nego što je otvoren forum Web aplikacije.

[Ovu poruku je menjao Goran Rakić dana 21.09.2010. u 10:51 GMT+1]
[ Davor Grubelić @ 31.03.2006. 23:02 ] @
ovaj manual na www.php.net zbilja ga ima ima pun tralala-cenzura.
uglavnom, postoji i verzija u .chm formatu-windows help file i ima dobrih 12 mb u zip verziji.
pošto imam modem, nemam blage kako da ga distribuiram.

pozdrav

edit: ispravljen url tag

[Ovu poruku je menjao SmilieBG dana 01.04.2006. u 01:05 GMT+1]
[ SmilieBG @ 01.04.2006. 00:07 ] @
ovde ima da se skine .chm

http://www.php.net/download-docs.php

kao i jos par formata PHP manual-a.

Poz,
Sale
[ Miroslav Ćurčić @ 01.04.2006. 22:00 ] @
Evo još sajtova sa PHP skriptama i uputstvima:

http://php.resourceindex.com/

http://www.phpjunkyard.com/

http://www.phpfreaks.com/

http://www.fatscripts.com/

http://www.sitescripts.com/PHP/

http://www.chipmunk-scripts.com/

http://www.scripts.com/php-scripts/

http://dmoz.org/Computers/Programming/Languages/PHP/Scripts/
[ k2k2 @ 13.06.2006. 07:59 ] @


www.scriptdungeon.com
veoma dobar izbor bedza
[ DOWNLOADS.CO.YU @ 15.08.2006. 18:33 ] @
Evo još jedan veoma kvalitetana sajt sa php skriptama: http://www.needscripts.com/PHP/Scripts_and_Programs/index.html




[ Jezdimir Lončar @ 22.11.2006. 11:10 ] @
Pa najvrijedniji izvor skripti je hotscripts ali je php builder (valjda se tako piše) dobar.
[ bitecode @ 12.12.2006. 21:18 ] @
Po mom mišljenju je http://www.phpclasses.org/ ispred konkurencije :)
[ Miroslav Ćurčić @ 16.02.2007. 23:40 ] @
Jedan strani,
jako posećen PHP forum:

http://www.webmasterworld.com/php/
[ dakipro @ 28.02.2007. 19:39 ] @
Mislim da puno ljudi ne zna da u samom zend studiu ima gomila gotovih i testiranih skripti, koje se lako ubacuju u gotov kod (naravno, ako se koristi zend studio kao php editor). Do njih se dolazi iz menija Edit -> Show snippets. Zaista gomila svakojakih skripti... Ako vam hitno treba neka prosta (ili neprosta) skripta, nije lose pogledati prvo ovde, cisto vremena radi.
[ Salindrija Filip @ 05.06.2007. 08:20 ] @
Dobar sajt sa besplatnim php skriptama.

http://www.codewalkers.com
[ extramedia @ 15.08.2007. 23:44 ] @
Hmz...

Ja se slazem sa Smiletom.
Najbolji feeling je kad iscedish par litara znoja iz sebe da nesto napravish i onda posle toga to nesto zapravo i radi

Zato, php.net i samo vozi!
[ freediver @ 01.01.2008. 17:31 ] @
http://www.scriptcopy.com je dobro mesto za naci skripte klonove popularnih sajtova
[ hajduk7 @ 01.01.2008. 19:00 ] @

Ljudi jel neko probao da uzme skriptu sa ovog sajta (naravno pod semu gratis). Ja skinem pdf fajl i onda u njemu kliknem na link kao navodno da uzmem skriptu posle me odvede na sajt gde ima ona fora da se upise kod sa slike ali nikako nece da mi prihvati kod koji unosim i pokusavao sam cak i velika slova, mala ali nece nikako.
[ Nemanja Avramović @ 01.01.2008. 20:17 ] @
Ne klikćeš na PDF nego na "visit" (ako postoji) - to te obično vodi na sajt proizvođača skripte odakle možeš istu da preuzmeš.
[ Take @ 23.01.2009. 00:41 ] @
http://www.weberdev.com
http://www.dynamicdrive.com/
[ Predrag Gajic @ 19.03.2009. 21:25 ] @
Citat:
LOVELORD: Treba mi skripta koja kupi sadrzaj tog foldera na serveru na kome se nalazi i prikazuje linkove do fajlova koji se nalaze u tom folderu.
Npr. ako u folderu ima neka pesma, u folderu pesma, da mi prikaze link www.imesajta/folder/imefajla.mp3 ili zip...
Hvala unapred...

Code:
function Read_Dir($Dir) {
$Temp = opendir($Dir);
$Out = "<ul>";
while (false !== ($File = readdir($Temp))) {
if (($File != ".") && ($File != "..")) {
if (is_dir($Dir."/".$File)) {
$Out .= "<li><h2>$File</h2></li>";
$Out .= Read_Dir($Dir."/".$File);
}
if (is_file($Dir."/".$File)) {
$Out .= "<li><a href=\"$Dir/$File\">$File</a></li>";
}
}
}
$Out .= "</ul>";
return $Out;
}

http://www.elitesecurity.org/t79500-0
[ stankons @ 20.03.2009. 08:04 ] @
Citat:
LOVELORD: Treba mi skripta koja kupi sadrzaj tog foldera na serveru na kome se nalazi i prikazuje linkove do fajlova koji se nalaze u tom folderu.

Npr. ako u folderu ima neka pesma, u folderu pesma, da mi prikaze link www.imesajta/folder/imefajla.mp3 ili zip...

Hvala unapred...


Upravo stiglo na delicious:

http://www.ajaxplorer.info/
[ Alexxandar @ 11.05.2009. 14:39 ] @
Pošto su neki tražili način da uploaduju arhivu(zip,tar,gzip, etc...) na server a zatim da je raspakuju(a nemaju cPanel) evo jednog zgodnog rešenja :)
eXtplorer - PHP- and JavaScript- based File Manager
http://extplorer.sourceforge.net/
Citat:

* Copy & Move Files and Directories by Drag&Drop
* Dynamic Directory Tree with on-demand loading of subdirectories
* Edit Files (with Syntax-Highlighting thanks to EditArea)
* Rename, Delete or Create new Files and Directories
* Access Files through FTP or directly (using PHP) to totally overcome permission and file ownership issues
* Upload or Download files just as you like
* Create and Extract Archives (ZIP, Tar, Tar/GZ, Tar/BZ)
* User Management with different permission levels like "View only" or "Edit" and "Admin"
* Available as a component for Joomla! and Mambo.
[ Nemanja Avramović @ 16.06.2009. 09:04 ] @
Mislim da je to ovo: http://page-flip.com/
[ NCIS @ 25.02.2011. 10:33 ] @
Ima skripti na http://imprimatur.weebly.com
[ Milos911 @ 13.06.2011. 10:11 ] @
Treba mi bilo kakva skripta koja ce proveriti da li je .eu domen vec zauzet. Zezam se vec par dana sa ovim, i svaka koju nadjem ne radi (osim jedne za koju ne mogu da provalim kako radi). Znaci osim eu provere nista drugo mi nije bitno. Pa ako neko ima bicu mu do neba zahvalan :)
[ black_hat @ 05.05.2012. 11:12 ] @
Treba mi ovakva skripta
http://srcechat.com/
[ ib.kroki @ 17.05.2012. 14:56 ] @
Da li neko ima skriptu koja broji koliko je puta preuzet neki fajl?

Ne poznajem PHP, tako da mi uputstva kako se to pravi ništa ne znače.
Možda je bezobrazno sa moje strane, ali potrebno mi je gotovo rešenje.

Imao sam jednu koja je prestala da radi, a objasniše mi da je hosting provajder napravio neke izmene i da više nije kompatabilna (ako im je verovati).

Guglao sam, ali nisam se snašao.

Unapred hvala!
[ ib.kroki @ 19.05.2012. 14:05 ] @
^ Rešio sam problem za brojanje i prikazivanje koliko je puta preuziman fajl, pa da podelim sa ostalim korisnicima ES foruma.

http://www.kavoir.com/2010/05/...ccess-visits-or-downloads.html

Prosto, a radi odlično. Nije potrebna SQL baza.
[ weleb @ 31.05.2012. 00:43 ] @
Znači ovako, postoji li kakvi tutorijal ili gotovo riješenje za jednostavni php order system. Znači klijent se logira, dobije popis proizvoda kilkom na dodaj proizvod se stavlja u košaricu i ukoliko je to to klikom narudžba se ta narudžba proslijeđuje adminu na mail - znači bez cijena i sl stvari. Kao nekakva vrsta katalog proizvoda
[ LOVELORD @ 28.08.2012. 06:58 ] @
Jel zna neko koja je ovo skripta ili koji je modul u pitanju? I za koju skriptu?

http://transport.ba/views

http://www.cargoagent.net/

Ili nesto slicno...

Unapred hvala
[ Gorčilo_ @ 04.12.2012. 07:51 ] @
Interesuje me da li neko može da mi preporuči neki dobar PhP script za download. Ne mora biti besplatan. Npr nesto kao Phoca Download manager za Joomla, izgleda ovako Tehnička škola Pirot

Pozdrav
[ j4m0r3 @ 08.04.2013. 01:26 ] @
Da li moze neko da mi pomogne ili me uputi oko pisanja skripte za upload vise slika odjednom sa promenom imena slika, kreiranjem thumb-ova i upisivanjem svega toga u bazu?
Hvala
[ -Godfather- @ 20.06.2013. 12:17 ] @
Ima li neki Php script pomocu koga moze da se odradi nesto slicno ovome sa slike. Znaci, da ja kao administrator upload-ujem neki dokument a da on sam kreira html kod i detalje o tom dokumentu. Ovo na slici je, inace, Phoca Download Plugin
[ serbian_boy @ 16.07.2013. 12:14 ] @
Treba mi neka galerija za slike, noramlno gde bih ubacivao slike iz admin panela
[ vuxor @ 16.07.2013. 13:38 ] @
Nesto kao http://piwigo.org/
[ serbian_boy @ 16.07.2013. 14:06 ] @
sad cu da vidim jel je to to :)
[ serbian_boy @ 16.07.2013. 14:28 ] @
Citat:
vuxor:
Nesto kao http://piwigo.org/

Sad sam probao ovo i nije lose ali meni fakticki treba nesto da samo posetioci mogu da gledaju slike, bez registracije itd... a ja iz admin panela da ubacujem fotografije. da ne moram da menjam kod svaki put kad dodajem slike
[ serbian_boy @ 05.02.2014. 18:22 ] @
Ja sam probao iz Picture Publisher_a mozda nije losa ideja.
[ agasoft @ 06.04.2014. 22:00 ] @
Zdravo,
Da ne otvaram novu temu.
Potrebna mi je jedna skriptica, ako bi neko bio ljubazan da mi je napiše.
Tražio sam na netu, ali, ili ja nisam uspeo da definišem to na engleskom šta mi tačno treba, ili tako nešto nema nigde.
Skripta treba da mi odbrojava vreme, do jednog događaja.
Npr:
događaj je 8.7.2018. u 18:00.
A treba da piše:
Do tog i tog događaja, preostalo je, dana, sati, minuta, sekundi. Bilo bi dobro da bude dinamička i da sekunde odbrojavaju na stranici, bez osvežavanja.
[ deedee5 @ 06.04.2014. 22:43 ] @
^ http://www.webdesignrazzi.com/...query-countdown-timer-scripts/
[ plus_minus @ 07.04.2015. 18:55 ] @
Baš malopre napisah (i testirah) jednu metodu koja proverava da li unos preko browser based js code editora (codemirror ili ace) sadrži samo one tagove koji smeju da se nađu u okviru head taga, pa rekoh sebi da to podelim sa novajlijama koji čupaju kosu.

Postoji već rešenje za to (HTML purifier, npr.), međ'tim ja sam nekako alergičan na robusne i poznate, freeToUse klase koje doduše, rade svoj posao, pretpostavljam, jako dobro (u životu nisam koristio, lična rešenja su najbolja). Ne želim da gruvam dodatne 'require_once' (itd) i dodatni opcode ako to već može u jednoj hand-made metodi sa malo foreach, explode, itd.. da se odradi i da radi lepo. U suštini, jako, jako prosto za 'sklepati'.

Dakle, onda kada se nađete u situaciji da vam treba unos koji ostavlja traga isključivo unutar head taga, pa želite da vašim korisnicima ne dozvolite da osim validnih (html5 DOCTYPE, '<!--', '-->', '<title>', '<style>', '<base>', '<link>', '<meta>', '<script>', '<noscript>') ne mogu da unesu bilo šta drugo, možete probati sa sledećom metodom/funkcijom.

Metoda ne proverava atribute i ostalo, već samo tagove. Ima li neželjenih ili nema neželjenih.

Između ostalog, metoda takođe proverava da li postoje i Server Side Code tagovi, vezani za xml i sve varijante php-a. Pa ako ima i njih - unos se takođe stopira.

Sve delove uzete u obzir je lako obrisati/izbaciti ili pak proširiti ...

Preduslov:

- Pre nego što se metoda pozove, potrebni su pravi < i > open/close tagovi (metoda u svom trenutnom izdanju takve uzima u obzir), ne entiteti *(konverzija se lako može dodati/dopisati samoj metodi, pa, kome treba neka dopiše).

Metoda

Code (php):

<?php

# Check for allowed head tags before writing

class someClass extends someOtherClass // Or extends nothing..
{

 protected function NotAllowedTagsForHead($textarea)
 {

 # HTML tags start

     $counter = array();

     $allowedTags = array (
          '<!--',
          '-->',
          '<title',
          '<style',
          '<base',
          '<link',
          '<meta',
          '<script',
          '<noscript',
     );

     $cl=array();

     $details=(explode(PHP_EOL, $textarea));

     if(count($details)>=1)
     {
          foreach($details as $i=>$line)
          {
               $checkLine=str_replace('>',' ', $details[$i]);
               $checkLine=explode(' ', $checkLine);
               $checkLine=$checkLine[0];
               $cl[]=$checkLine;
          }

          unset($i, $line, $details, $checkLine);

          foreach($cl as $suspect):

               if(in_array($suspect, $allowedTags)):
               else: $HAAAALT = true; break; endif;

          endforeach;
          unset($cl, $suspect);
     }
     else unset($cl, $details);

     if(!isset($HAAAALT))
     {
          foreach($allowedTags as $value):

           if(strpos($textarea, $value) !== false):
               $counter[]=true; else: endif;
           unset($value);

          endforeach;
          unset($allowedTags);

          $HAAAALT=(
               (count($counter)<1 || empty($counter)) ?
               true:false
          );
     }

 # HTML tags end

     
 # SS/xml tags piece start

     foreach( array (
               'fullphp' => '<?php',
               'shortphp' => '<?',
               'aspphp' => '<%',
               'shortecho' => '<?=',
               'endasp' => '%>',
               'endtag' => '?>'
          ) as $var=>$value):

          $$var=strpos($textarea, $value);
          unset($value, $var);

     endforeach;

     $serverSideSTOP=(
          in_array(true,
               array($fullphp, $shortphp, $aspphp, $shortecho, $endasp, $endtag)) ?
          true:false
     );

 # SS/xml tags piece end

     
     return(
          (trim($textarea) !== ''
          && $HAAAALT || $serverSideSTOP ) ?
          true:false
     );

 }

}

 


-------------
- Metoda se može pridodati bilo kojoj postojećoj klasi jer je 'unutra' - čista standardna php procedura.
- Ukoliko je potrebno, prepraviti protected u public *(u mom slučaju sve živo ide kroz instance ili abstrakciju) ...
- Ukoliko ne treba ili ne može da bude metoda u sklopu već funkcija, obrisati 'protected' pozvati istu bez '$this->'


Provera
Code (php):

<?php

/*

     Somewhere inside validation script, after submit/post button is being clicked ...

*/



$headTagsArea = $_POST['myTextAreaField'];

if($this->NotAllowedTagsForHead($headTagsArea))
{
     echo (
          'HEY YOU! <br> You can only add tags allowed within <span class="paramID">&lt;head&gt;</span> '.
          ' on this portion.<br> No scripting, no server side code. <br> '.
          'Allowed tags: <span style="color: Green;">&lt;title&gt; &lt;style&gt; &lt;base&gt; '.
          '&lt;link&gt; &lt;meta&gt; &lt;script&gt; &lt;noscript&gt;</span> '
     );

} else {
     
     // No unwanted tags or value is - EMPTY.
     // Proceed with validation, parsing, etc ...

}

 


I to bi bilo to.
:)

Ono što treba imati u vidu, jeste da svaki naredni tag koji korisnici upisuju treba biti u novom redu/liniji.
Pa ako neko džidža ručno sve u jednom redu, to se recimo u '$details' promenjivoj može promeniti/prevazići tako da ne pravi niz od PHP_EOL već od '>' karaktera, npr..
Ukoliko pre pozivanja funkcije, ta sitnica nije već rešena.

npr.

Code (php):


# Umesto

 $details=(explode(PHP_EOL, $textarea));


# Ovako nešto

 $details=preg_replace('/\s+/', ' ', $textarea);
 $details=str_replace('><','> <',$details);
 $details=str_replace('> </','></',$details);
 $details=str_replace('> <','>:*:<',$details);
 $details=(explode(':*:', $details));

 



[Ovu poruku je menjao plus_minus dana 07.04.2015. u 20:45 GMT+1]
[ dusans @ 07.04.2015. 19:43 ] @
Provera head tagova će raditi samo ako je html propisno formatiran, tipa:
Code:

<head>
    <title>Header title</title>
    <style>
        h1 { color: blue; }
    </style>
</head>

Ukoliko je, ne primer, ovakav - neće raditi dobro:
Code:

<head>
    <title>Hello 
    world</title>
    <style>
        h1 { color: blue; }
    </style><span>Facebook</span>
   <!-- Commented out
      <img src="heart.jpg" alt="Heart">
   -->
</head>

Reč world će biti pogrešno detektovana kao invalid tag.
Invalid tag <span> neće biti detektovan.
Tag <img> će biti detektovan kao invalid tag iako se nalazi u komentaru.

Rešenje mi se sviđa, dosta je prosto i kratko, svaka čast na trudu i želji da podeliš sa ostalima.
Međutim ne bi bilo loše uzeti i ove slučajeve tako da bude univerzalno i tačno.

Ja bih pre algoritma provere html-a uradio sledeće:
1. Replace new lines sa ' '
2. Remove sve između svakog '<!--' i prvog njemu sledujućeg '-->'
3. Explode SAMO po otvaračima tagova '<' ali ne po zatvaračima tagova '</'
4. Procesiranje tog dobijenog niza kao što je rađeno sa $details...

Opciono, možda fali lowercase i trimovanje u nekim koracima,
nisam nikada radio sa PHP-om, pa ne znam kako tu rade poređenja stringova.

EDIT: Sad sam video da si već pomenuo neke od ovih detalja u izmenjenom postu (dok sam ovo pisao),
mada bi bilo bolje da tu pripremu radi sama funkcija umesto pozivaoca.

[ plus_minus @ 07.04.2015. 19:59 ] @
^^ Tako je...

EDIT/Izmena koju sam dodao jeste sasvim dovoljna ..

Ovaj deo, sve što ima više od jednog razmaka, ili je tabspace, newline.. etc.. , a nije tekst/string, pretvara u jedan razmak.
Code (php):

 
 $details=preg_replace('/\s+/', ' ', $textarea);

 


No, strtolower(string), to takođe može da se doda (u određenom delu loop-a )
.. i uklanjanje detekcija teksta koji nije u sklopu taga/atributa...

npr.

Code (html):

<head>
<meta name="content" content="name">

 FOOOO!

<style type="text/css">
 .someClass { border: 1px solid Black; }
</style>

</head>
 


... takođe može da se doda, pa da se opomene korisnik ili da se jednostavno makne .. strip_tags npr.. pa trim .. pa ako ostane FOOOO! - Alarm!

No, to zavisi od onoga ko želi da se uči i da se igra.
[ plus_minus @ 19.04.2015. 16:34 ] @
I da stavimo tačku na ovaj mali doprinos .. » http://www.elitesecurity.org/p3563739

Ne znam jel' nekome potrebalo, jel' neko sam dodao sitnice koje su falile, kako god, evo završene varijante koja:

- neće da propusti dalje ukoliko ima teksta a taj tekst nije u sklopu validnih tagova koji smeju da se nađu unutar head taga ili je tekst mimo html komentara.
- neće da propusti dalje ukoliko nisu u pitanju samo dozvoljeni head tagovi te ako ima php ili xml tagova (u svim varijantama)
- neće da propusti dalje ukoliko su tagovi UPPERCASE (Mala slova i html5 bre. Ko još piše html tagove velikim slovima .. ? Mis'im ima.. ali.. whatever. To je mikrosekunda posla da se doda, al' ja to neću da radim)

ono što je izmenjeno/dodato:

Code (php):


<?php

// Deo pre prve petlje

     $details=preg_replace('/\s+/', ' ', $textarea);
     $details=str_replace('><','> <', $details);
     $details=str_replace('> </','></', $details);
     $details=str_replace('> <','>:*:<', $details);
     $details=(explode(':*:', $details));


// I mala izmena u prvoj petlji

     foreach($details as $i=>$line)
     {
          $checkLine=trim($details[$i]);

          if((strpos($checkLine, $allowedTags[0]) === false
          && substr_count($checkLine, '>') > 2)
          || substr($checkLine,0,1) !=='<'
          || substr($checkLine,-1) !== '>')
          {
               $HAAAALT = true;
               break;
          }
          else
          {
               $checkLine=str_replace('>',' ', $details[$i]);
               $checkLine=explode(' ', $checkLine);
               $checkLine=trim($checkLine[0]);
               $cl[]=$checkLine;
          }
     }

 


Sve ostalo je isto.

Evo i komplet metode u svom završnom izdanju:
(pozivanje i provera se vrši na isti način kao što je prehodno opisano)

Code (php):

<?php

// Sanitize allowed head tags for meta area before writing
protected function NotAllowedTagsForHead($textarea)
{
     // HTML tags
     $cl=array();
     $counter = array();
     $allowedTags = array (
          '<!--',
                '<title',
          '<style',
          '<base',
          '<link',
          '<meta',
          '<script',
          '<noscript',
     );

     $details=preg_replace('/\s+/', ' ', $textarea);
     $details=str_replace('><','> <', $details);
     $details=str_replace('> </','></', $details);
     $details=str_replace('> <','>:*:<', $details);
     $details=(explode(':*:', $details));

     if(count($details)>=1)
     {
          foreach($details as $i=>$line)
          {
               $checkLine=trim($details[$i]);

               if((strpos($checkLine, $allowedTags[0]) === false
               && substr_count($checkLine, '>') > 2)
               || substr($checkLine,0,1) !=='<'
               || substr($checkLine,-1) !== '>')
               {
                    $HAAAALT = true;
                    break;
               }
               else
               {
                    $checkLine=str_replace('>',' ', $details[$i]);
                    $checkLine=explode(' ', $checkLine);
                    $checkLine=trim($checkLine[0]);
                    $cl[]=$checkLine;
               }
          }


          unset($i, $line, $details, $checkLine);

          foreach($cl as $suspect):
               if(in_array($suspect, $allowedTags)):
               else: $HAAAALT = true; break; endif;
          endforeach;
          unset($cl, $suspect);
     }
     else unset($cl, $details);

     if(!isset($HAAAALT))
     {
          foreach($allowedTags as $value):
          if(strpos($textarea, $value) !== false):
               $counter[]=true; else: endif;
          unset($value);
          endforeach;
          unset($allowedTags);

          $HAAAALT=(
               (count($counter)<1 || empty($counter)) ?
               true:false
          );
     }

     // SS/xml tags piece start
     foreach( array (
          'fullphp' => '<?php',
          'shortphp' => '<?',
          'aspphp' => '<%',
          'shortecho' => '<?=',
          'endasp' => '%>',
          'endtag' => '?>'
     ) as $var=>$value):
          $$var=strpos($textarea, $value);
          unset($value, $var);
     endforeach;

     $serverSideSTOP=(
          in_array(true,
               array($fullphp, $shortphp, $aspphp, $shortecho, $endasp, $endtag)) ?
          true:false
     );

     // SS/xml tags piece end


     return ( (trim($textarea) !== '' && $HAAAALT || $serverSideSTOP ) ? true:false );
}

 


[Ovu poruku je menjao plus_minus dana 19.04.2015. u 22:55 GMT+1]
[ plus_minus @ 24.10.2015. 16:21 ] @
Opet ja.

Razlog za `engrija` jeste - fleš. Doduše razlog je sledeći: ono, kada neko uzme pa nadžidža sedamnaest fleš embed/objekata na neku html stranicu, a inače nije vičan kodiranju, već se ta stranica našla na nekom blogspot domenu, a svaki od tih sedamnaest fleš objekata ima isti istovetan i nepravilan kod za povlačenje yt video klipova.. onda sledi jedan freeze. Pretraživač se zamrzne. Kada se desi takva situacija, korisnik ima opciju da ubije pretraživač, to jest proces (ako zna) ili da sačeka oko pola minuta da se sam ne odmrzne i da konačno dobije poruku tipa `Adobe flash plugin has crashed ...`. Ovo se ne dešava uvek, ali kad se desi, mene istrese iz cipela. Svi kao nešto gotive html5 video i kao hoće da se prebace komplet i ja sam jedan od njih, ali na našu žalost, html5 video još uvek nije standard i fleš plugin se za embed video klipova još uvek koristi. Ono što je najzanimljivije, koliko sam ja primetio, ove sa yt nešto baš i zabole za varijacije share/embedovanja, a ovi što i nisu vični kodiranju, nešto i ne umeju da se snađu ili imaju i dalje stari object/embed deo koda. Upravo zbog toga, nastaje kuršlus i adobe flashplugin - crash. Embed zeza.

Object tag kao standalone, ne.

Dakle, onome kome treba siguran način da provuče video klipove sa YT sajta ... i ne želi to kao iframe ... i ne želi da ispusti one korisnike kojima je jedina opcija da gledaju video online preko fleša, jer sistem koji koriste ne dozvoljava/nije sposoban i dovoljno jak za html5 video, te uz to hoće da budu sigurni da do crash-a neće doći..
a pri tom takođe želi da mu kod bude validan i za xhtml i za html..
.. testirano i radi (kad kažem testirano, ne mislim na IE8, IE7 i na ostatak žgadije) :

(Radi kao pesma čak i na ff preko linuxa. Ko nije upoznat, Linux je omražen od strane adobe-a, a firefox preko linuxa dobija samo critical bug-fix update za fleš plugin i to za `latest (ironija)` v 11.2)

funkcija:

Code (php):

<?php

function yt_flash_object($y, $h=bool, $wi=int, $he=int)
{    
     $x=null;
     $a=(($h) ? 'https': 'http');
     $a.=('://www.youtube.com/v/');
     $b='?fs=1&amp;hl=en_US&amp;rel=0';
     $d = ($a.$y.$b); unset($a, $b, $y, $h);

     $wi=((!$wi) ? '480':"$wi"); $he=((!$he) ? '320':"$he");
     $wh=("width:${wi}px; height:${he}px;");
     unset($wi, $he);

     foreach(array(
          'movie' => "$d",
          'wmode' => 'opaque',
          'quality' => 'high',
          'menu' => 'false',
          'allowfullscreen' => 'true',
          'allowscriptaccess' => 'always',
     ) as $n=>$v) $x.=(
          '<param name="'.$n.'" value="'.$v.'"> '
     ); unset($v, $n);
     $x=('<object type="application/x-shockwave-flash" '.
          'data="'.$d.'" style="'.$wh.'">'."${x}</object>"
     ); unset($d, $wh);
     return($x);
}
 


Koristi se izuzetno lako.

primer:

Code (html):

<!DOCTYPE html>
<html>
<head><meta charset=utf-8>
<title>YT flash embed</title>
</head>
<body>
<div class="neka-tamo-klasa">
     <?php echo yt_flash_object('cfIAqYhLSr0', true, false, false); ?>
</div>
</body>
</html>
 


Dakle, funkcija ima 4 parametra.

- Prvi parametar jeste sami unikatni yt video ID, string dakle. ( .../watch?v=cfIAqYhLSr0 )

- Drugi parametar jeste boolean vrednost. true / false. Ako je true to znači https zahtev. Ako je false, biće http zahtev, bez enkripcije i ovo koliko sam ja primetio, na false, neće da radi.
Dakle, true, jer ovi iz yt više ne podržavaju ne-enkriptovane http embed zahteve.

- Treći jeste width ili širina.
- četvrti jeste height ili visina.

Ako je treći parametar boolean false, podrazumeva se širina objekta od 480(px).
Za četvrti parametar važi isto, s' tim što je podrazumevana vrednost 320(px).

Primer ako želimo video prozorče od 640*480px:

Code (php):

<?php

# Funkcija dodaje `px` automatski.
echo yt_flash_object('cfIAqYhLSr0', true, '640', '480');

 


I to bi bilo to.
[ Panajotov @ 24.10.2015. 16:45 ] @
Nisam naročito čitao temu, ali mi je zapao za oko tvoj post. Zašto raditi tako? Mislim da je bolja opcija da se od svakog klipa povuče njegova sličica (thumbnail) i tako prikaže korisniku, a kada želi da pogleda klip/video samo da mu apenduje (append) klip/video koji je želeo.
[ plus_minus @ 24.10.2015. 17:12 ] @
Definiši append. U php-u, makar čistom, nema append, mada znam na šta misliš. ;)

Fora je u tome što ni ja ne bih tako delao, ako ima više od 2 video klipa.

Bio sam toliko iznerviran jer sam silom prilike završio na jednom blogspot linku koji je prouzrokovao browser - freeze i rešio da napišem post.
Eto, možda će baš taj `blogspotter` da proba ovako nešto (za njih i jeste napisana funkcija), tu gde nema thumbova, nego direkt - embed.

A i onda kada povuče prvo thumb, pa append, šta radi taj append?
Ako nije iframe, kakav je kod koji dopunjuje nodu?

Kako bi po tebi trebalo da izgleda?

Poenta priče je da bude što je više moguće cross-compatible, da uvek radi, da ne zamrzava pretraživač i da nije iframe.

Ono što se na ovaj moj način dobija u html-u jeste sledeće:

Code (html):

<object type="application/x-shockwave-flash" data="https://www.youtube.com/v/cfIA...amp;amp;hl=en_US&amp;rel=0" style="width:480px; height:320px;">
<param name="movie" value="https://www.youtube.com/v/cfIA...amp;amp;hl=en_US&amp;rel=0">
<param name="wmode" value="opaque">
<param name="quality" value="high">
<param name="menu" value="false">
<param name="allowfullscreen" value="true">
<param name="allowscriptaccess" value="always">
</object>
 
[ Panajotov @ 24.10.2015. 17:46 ] @
Pod apend mislim jkveri (jquery) apend. Sve bih ja uradio kako si ti napisao, samo ne bi direktno kao objekat (object) prikazivao, vec bi stavio div sa sličicom (thumbnail) i nekim dugmetom (imitacijom yt dugmeta) koji bi radio onClick. Uglavnom, evo skripte kako bih to uradio:

Code:

(function ($) {
    var ytFunkcija= function () {
        var youTubeID = $(".youtube-player");
        youTubeID.each(function () {
            var This = $(this), ytID = This.data("id");
            This.html('<img class="youtube-thumb" src="https://img.youtube.com/vi/' + ytID + '/hqdefault.jpg"/><div class="play-button"></div>');
        });
        youTubeID.on("click", function (e) {
            e.preventDefault();
            var This = $(this),
                ytID = This.attr("data-id"),
                info = This.attr("data-info") || 0,
                rel = This.attr("data-rel") || 0,
                playlist = This.attr("data-playlist") || 0,
                jsapi = This.attr("data-enablejsapi") || 1,
                privacy = This.attr("data-privacy") || 1,
                autohide = This.attr("data-autohide") || 2,
                controls = This.attr("data-controls") || 0;
            if (privacy === 1)
                url = 'https://www.youtube-nocookie.com/embed/';
            else
                url = 'https://www.youtube.com/embed/';

            this.css("background", "#222").html('<iframe src="' + url + ytID + '?autoplay=1&autohide=' + autohide + '&border=0&wmode=opaque&enablejsapi=' + jsapi + '&controls=' + controls + '&showinfo=' + info + '&rel=' + rel + ((playlist !== 0) ? '&playlist=' + playlist : null) + '" frameborder="0"  allowfullscreen></iframe>');
        });
    };
    $(document).ready(function () {
        ytFunkcija();
    });

[ plus_minus @ 24.10.2015. 17:54 ] @
To onda ne treba da ide u ovaj forum, nego u podforum javascript i ajax...
A ako ga prikazuješ kao objekat, xhtml strict/transitional html4/5 .. podržavaju. Object. Tag. :)
Dakle, svi i sve vrste i podvrste html doctype-a.
Neke (čini mi se xhtml strict) ne vare iframe ič.
ps: I jel' mora uvek i uvek - jquery? Umete li vi da živite bez jquery-a?

VanillaJS. Think about that.
[ Panajotov @ 24.10.2015. 18:54 ] @
Znam, zato sam i na početku napisao da nisam čitao temu.
A iframe ne podržavaju, ma daj :)

Mora jkveri (jquery), ipak je svaki frejmvork(framework) zavisan od njega ukoliko ga koristimo u projektu, takođe, previše stvari dobiješ na gotovo :D
[ plus_minus @ 24.10.2015. 19:20 ] @
Bre, ako misliš da nešto izmišljam .. -> iframes-not-valid-in-xhtml-strict

Šta mora? Jquery? Ne mora.
Dobiješ previše stvari na gotovo?
Ja ne volim skoro ništa na gotovo.
A i ne bih o jq ništa da raspravljam, bar ne ovde.