Archívum - 2011 - Fórum téma
november 18
Szerializálás: külső referenciák injektálása
Szeretnék részleteket cachelni az aktuális állapotáról a rendszernek úgy, hogy a visszaállításkor az adott részlet automatikusan visszaépüljön a visszaállításkori rendszerbe. Így egy sokkal bonyolultabb cachelési logika valósítható meg... Gondoltam megosztom, hogy mire jutottam:Itt a lényeg annyi, hogy lehetséges szerializált objektumokba külső referenciákat injektálni.
class Identity
{
static protected $instance;
static public function Instance()
{
if (!isset(self::$instance))
self::$instance=new self();
return self::$instance;
}
protected $map=array();
public function hashCode($object)
{
$hashCode=spl_object_hash($object);
$this->map[$hashCode]=$object;
return $hashCode;
}
public function objectFromHashCode($hashCode)
{
return $this->map[$hashCode];
}
}
class State
{
public $value;
public function __construct()
{
$this->value=rand(0,111);
}
}
class MyClass
{
public $state;
public $stateHash;
public function __construct()
{
$this->changeState();
}
public function changeState()
{
$this->state=new State();
}
public function __sleep()
{
$this->stateHash=Identity::Instance()->hashCode($this->state);
return array('stateHash');
}
public function __wakeup()
{
$this->state=Identity::Instance()->objectFromHashCode($this->stateHash);
}
}
$object=new MyClass();
$clone=unserialize(serialize($object));
echo $object->state===$clone->state; //1
november 17
select értékének átadása
Sziasztok!
Két módszerrel is próbáltam kinyerni egy select értékét a torol2() fgv.-nek, de sajna egyik sem vált be. Ebben szorulnék 1 kis segítségre!
(A select innerhtml-lel lett kiíratva, egy másik elem helyére.)
function torol2(nyelv){
alert(nyelv);
}
function torol2(){
var nyelv= document.getElementById("hozzadaott");
alert(nyelv);
}
<select id="hozzadaott" name="ures" multiple='multiple'>
<option value="0">Jelenleg nincs hozzáadva egy nyelv sem!</option>
</select>
</div>
<input type="button" value="Töröl" onclick="torol2(this.form.hozzaadott.value)">
■ Két módszerrel is próbáltam kinyerni egy select értékét a torol2() fgv.-nek, de sajna egyik sem vált be. Ebben szorulnék 1 kis segítségre!
(A select innerhtml-lel lett kiíratva, egy másik elem helyére.)
function torol2(nyelv){
alert(nyelv);
}
function torol2(){
var nyelv= document.getElementById("hozzadaott");
alert(nyelv);
}
<select id="hozzadaott" name="ures" multiple='multiple'>
<option value="0">Jelenleg nincs hozzáadva egy nyelv sem!</option>
</select>
</div>
<input type="button" value="Töröl" onclick="torol2(this.form.hozzaadott.value)">
GnuPG + PHP
Sziasztok
PHP-ban szeretnék egy aláírást készíteni, azt beletenni egy xml fileba (azaz valamelyik elementbe) és ezt elküldeni egy webcímre. Az aláírás készítés azonban a PHP GnuPG extensionnel sehogysem sikerül. Azaz az aláírás elkészül, de nem jó.
Tesztként van egy perl script is, ami szintén futás közben állítja elô az aláírást a GnuPG modul sign parancsával:Ez a perl szépen lefut és az aláírás hiteles, mert a távoli szerver fogadja.
A php-ban készült aláírást viszont elutasítja a távoli gép. Azért gondolom, hogy a php-ben az aláíráskészítéssel van a gond, mert ha a perl script által készített aláírást teszem be az xml-be és azt küldöm el a php-ból, akkor minden ok.
A kulcskészítés a php scriptben:Olyan érzésem van, mintha nem azt a kulcsot használná az aláíráskészítéshez amit kellene. Az addsignkey függvény vajon a publikus vagy a titkos kulcsot használja az aláírás készítéséhez?
Mi lehet a hiba?
Köszönöm
■ PHP-ban szeretnék egy aláírást készíteni, azt beletenni egy xml fileba (azaz valamelyik elementbe) és ezt elküldeni egy webcímre. Az aláírás készítés azonban a PHP GnuPG extensionnel sehogysem sikerül. Azaz az aláírás elkészül, de nem jó.
Tesztként van egy perl script is, ami szintén futás közben állítja elô az aláírást a GnuPG modul sign parancsával:
$gpg->sign(armor => 1,plaintext => "/tmp/".$$.".txt",output =>"/tmp".$$.".out",passphrase=>$gpgpass,'detach-sign'=>1,);
A php-ban készült aláírást viszont elutasítja a távoli gép. Azért gondolom, hogy a php-ben az aláíráskészítéssel van a gond, mert ha a perl script által készített aláírást teszem be az xml-be és azt küldöm el a php-ból, akkor minden ok.
A kulcskészítés a php scriptben:
$res = gnupg_init();
$info = gnupg_keyinfo($res, '######');
$fingerprint = $info[0]['subkeys'][0]['fingerprint'];
print_r($info);
gnupg_addsignkey($res,$fingerprint);
gnupg_setarmor($res,1);
gnupg_setsignmode($res,GNUPG_SIG_MODE_DETACH);
$signed = gnupg_sign($res,$xmldata);
$xmltotal = str_replace("<SIGNATURE>","<SIGNATURE>$signed",$xmldata);
Mi lehet a hiba?
Köszönöm
Karakter símitási módszerek photoshop mintára (éles, határott, erős...)
Sziasztok,
Olyan problémába ütköztem, hogy egy weboldalnál külső betűtípust használok és a weblap design tervében egyes szövegrészekre simítási módszerek vannak alkalmazva mint pl Éles, Határozott...stb és ez miatt nem pont úgy néznek ki a karakterek az oldalon mint photoshopban, erre esetleg tud valaki valami megoldást????
Előre is köszi.
■ Olyan problémába ütköztem, hogy egy weboldalnál külső betűtípust használok és a weblap design tervében egyes szövegrészekre simítási módszerek vannak alkalmazva mint pl Éles, Határozott...stb és ez miatt nem pont úgy néznek ki a karakterek az oldalon mint photoshopban, erre esetleg tud valaki valami megoldást????
Előre is köszi.
CSS vagy Javascript hiba
Sziasztok!
Ne haragudjatok, hogy új témát nyitottam, de sajnos sehol nem találtam megoldást a problémámra.
Egy honlapot szerkesztek, melynek a fejlécébe be szeretnék szúrni egy galériát. Ezt a kis bannert már össze is raktam egy üres lapon, ami ebben a formában működik is, viszont mikor beillesztem a weboldalba, akkor már valamiért nem indul el. Szerintetek hol rontottam el? A választ előre is köszönöm.
Üdvözlettel:
Tamás
■ Ne haragudjatok, hogy új témát nyitottam, de sajnos sehol nem találtam megoldást a problémámra.
Egy honlapot szerkesztek, melynek a fejlécébe be szeretnék szúrni egy galériát. Ezt a kis bannert már össze is raktam egy üres lapon, ami ebben a formában működik is, viszont mikor beillesztem a weboldalba, akkor már valamiért nem indul el. Szerintetek hol rontottam el? A választ előre is köszönöm.
Üdvözlettel:
Tamás
RegEx: html forrásban az új sor gondot okoz
Egy html oldal tartalma már változoban van.
Az oldalbol bizonyos kifejezések közti részt keresek.
preg_match('/<div class="tol">(.*?)<div class="ig">/', $oldal, $return);
namost ha a <div class="tol"> kif és a <div class="ig"> kif egy sorban van, akkor visszakapom a kettő közti tartalmat a $return-ben.
viszont ha nem, tehát van új sor karakter is közben, tehát pl van 10sor a 2 kif között akkor nem advissza semmit a fgv.
ezt hogyan oldhanám meg, hogy a (.*?)-vel jelölt tetszőleges string ben az uj sorok is tartozzanak bele? tehát a fgv ne csak egy sorban keressen, hanem amig nem találja meg a zaro kif-t, addig menjen ujabb sorokra is, és adja nekem vissza őket.
ilyeneket próbálok még, de nem jo:
preg_match('/<div class="tol">(.*?|[\n]*)<div class="ig">/', $oldal, $return);
köszi
■ Az oldalbol bizonyos kifejezések közti részt keresek.
preg_match('/<div class="tol">(.*?)<div class="ig">/', $oldal, $return);
namost ha a <div class="tol"> kif és a <div class="ig"> kif egy sorban van, akkor visszakapom a kettő közti tartalmat a $return-ben.
viszont ha nem, tehát van új sor karakter is közben, tehát pl van 10sor a 2 kif között akkor nem advissza semmit a fgv.
ezt hogyan oldhanám meg, hogy a (.*?)-vel jelölt tetszőleges string ben az uj sorok is tartozzanak bele? tehát a fgv ne csak egy sorban keressen, hanem amig nem találja meg a zaro kif-t, addig menjen ujabb sorokra is, és adja nekem vissza őket.
ilyeneket próbálok még, de nem jo:
preg_match('/<div class="tol">(.*?|[\n]*)<div class="ig">/', $oldal, $return);
köszi
scrollbar szinezés manapság hogyan?
Sziasztok,
Nem tudom, manapság mennyire menő/nem menő a scrollbar szinezés/egyedi scrollbar-ok használata nállam mindenesetre 1 feladat kapcsán igényként merült fel
Azt tudom, hogy évekkel ezelőtt volt néhány IE specifikus css property ami ezt lehetővé tette, ám ezt a többi böngésző nem nagyon támogatta?
Mi a helyzet manapság? Szabvánnyá ( vagy ha nem is szabvánnyá, de más böngészők által is támogatott dologgá ) váltak ezek a dolgok?
Vagy esetleg ha nem is csak css-sel , de pl javascript segitségével tudnám a scrollbar kinézetét az összes böngészőben befolyásolni/egységesiteni?
Vagy esetleg valamilyen html/css/javascript alapú scrollbar megoldást kéne találnom, ami (majdnem) minden böngészőben müködik?
Létezik e esetleg valamilyen GWT (google web toolkit) alapú megoldás a problémára?
(a munka a vaadin/gwt framework-ökre épül)
■ Nem tudom, manapság mennyire menő/nem menő a scrollbar szinezés/egyedi scrollbar-ok használata nállam mindenesetre 1 feladat kapcsán igényként merült fel
Azt tudom, hogy évekkel ezelőtt volt néhány IE specifikus css property ami ezt lehetővé tette, ám ezt a többi böngésző nem nagyon támogatta?
Mi a helyzet manapság? Szabvánnyá ( vagy ha nem is szabvánnyá, de más böngészők által is támogatott dologgá ) váltak ezek a dolgok?
Vagy esetleg ha nem is csak css-sel , de pl javascript segitségével tudnám a scrollbar kinézetét az összes böngészőben befolyásolni/egységesiteni?
Vagy esetleg valamilyen html/css/javascript alapú scrollbar megoldást kéne találnom, ami (majdnem) minden böngészőben müködik?
Létezik e esetleg valamilyen GWT (google web toolkit) alapú megoldás a problémára?
(a munka a vaadin/gwt framework-ökre épül)
Php-vel régi dbf file beolvasás és karakterkódolás
Sziasztok
Egy rlgi dbf file-t olvasok be manuálisan, és egy Int típusú mezőt így kapok vissza (Int a mező az adatbázisban, persze a php-ban string):
Egy rlgi dbf file-t olvasok be manuálisan, és egy Int típusú mezőt így kapok vissza (Int a mező az adatbázisban, persze a php-ban string):
november 17
Observer és a logika
Elég vicces minta az Observer, legalábbis biztosan nem volt a helyzet magaslatán, aki elnevezte.
Ugye van Observable és Observer a mintában, az érdekessége pedig az, hogy az Observer-t a Subject-hez kell beregisztrálni. Tehát nem a figyelő dönti el, hogy ő most figyel, hanem az megfigyelt dönti el, hogy őt most meg lehet figyelni. Ez pedig szerintem a való élettől elég elrugaszkodott, hacsak nem a pénzbedobós kukkolós fülkéket vette alapul a minta kitalálója... :DTi milyen más nevet adnátok ennek a mintának, illetve a benne lévő osztályoknak?
■ Ugye van Observable és Observer a mintában, az érdekessége pedig az, hogy az Observer-t a Subject-hez kell beregisztrálni. Tehát nem a figyelő dönti el, hogy ő most figyel, hanem az megfigyelt dönti el, hogy őt most meg lehet figyelni. Ez pedig szerintem a való élettől elég elrugaszkodott, hacsak nem a pénzbedobós kukkolós fülkéket vette alapul a minta kitalálója... :D
$richMan=new Observer(); //$observer=new ConcreteObserver();
$girl=new Dancer(); //$subject=new Subject();
$girl->getCashFrom($richMan); //$subject->registerObserver($observer);
$peepShow=new PeepshowEvent($girl); //$event=new ConcreteEvent($subject);
$girl->perform($peepShow); //$subject->notifyAll($event);
$richMan->watch($peepShow); //$observer->notify($event);
Oldal töltését jelző "ablak"
Szép napot mindenkinek!
Mozt kezdtem foglalkozni a Javascript-ekkel, de fogalmam sincs arról, hogy hogyan lehetne megoldani a következő problémát: Amíg az oldal be nem tölt jelenjen meg egy ablak, mely jelzi a kliensnek, hogy az oldal tölt, de a hátteret sötétítse le és ne lehessen használni addik az oldalt. Próbáltam sokmindent, de mindig muszáj volt visszatérnem az eredetihez, mert nem működött...
Most így néz ki a kód:Erre nincs valami egyszerű megoldás?
A válaszokat előre is köszönöm!
■ Mozt kezdtem foglalkozni a Javascript-ekkel, de fogalmam sincs arról, hogy hogyan lehetne megoldani a következő problémát: Amíg az oldal be nem tölt jelenjen meg egy ablak, mely jelzi a kliensnek, hogy az oldal tölt, de a hátteret sötétítse le és ne lehessen használni addik az oldalt. Próbáltam sokmindent, de mindig muszáj volt visszatérnem az eredetihez, mert nem működött...
Most így néz ki a kód:
function betolt()
{
if (document.getElementById)
{
document.getElementById('betolto').style.visibility='hidden';
}
else
{
if (document.layers)
{
document.betolto.visibility = 'hidden';
}
else
{
document.all.betolto.style.visibility = 'hidden';
}
}
}
A válaszokat előre is köszönöm!