Src v <img> pomocí PHP proměnné

Re:Src v <img> pomocí PHP proměnné
« Odpověď #15 kdy: 26. 10. 2015, 13:42:05 »
Zajdan:
- zkousel jsi to tam fouknout pres base64?
- kdyz to neposilas do pdf ale jako html na vystup tak to vidis v prohlizeci cajk a problem ma jen mpdf?
- jak vypada vysledek kdyz to posles do pdf? je problem jen v tom obrazku?

Ondrej Nemecek: osobne povazuji tcpdf za pokrocilejsi, ackoliv pracnejsi.
Děkuji za možnost editace příspěvku.


ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:Src v <img> pomocí PHP proměnné
« Odpověď #16 kdy: 26. 10. 2015, 14:13:09 »
Zajdan:
- zkousel jsi to tam fouknout pres base64?
- kdyz to neposilas do pdf ale jako html na vystup tak to vidis v prohlizeci cajk a problem ma jen mpdf?
- jak vypada vysledek kdyz to posles do pdf? je problem jen v tom obrazku?

Ondrej Nemecek: osobne povazuji tcpdf za pokrocilejsi, ackoliv pracnejsi.

zkusil jsem:
<img src='data:image/svg+xml; <svg width='100' height='100'>  <circle cx='50' cy='50' r='40' stroke='green' stroke-width='4' fill='yellow' /></svg> ' />
<img src='data:image/svg+xml;  base64codeHere ' />
<img src='data:image/svg+xml; $svg ' />


mpdf nezpracuje ani jeden takovyto zpusob predani a ve vyslednem pdf je jen ikonecka pro 'neexistujici' zdroj
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

Jenda

Re:Src v <img> pomocí PHP proměnné
« Odpověď #17 kdy: 26. 10. 2015, 18:44:20 »
Tak si to po sobě alespoň přečti. Jak asi vyhodnotíš ty apostrofy?

Jenda

Re:Src v <img> pomocí PHP proměnné
« Odpověď #18 kdy: 26. 10. 2015, 18:46:18 »
A u toho druhého mu musíš ten encoding samozřejmě říct. Např. u PNG je to

src="data:image/png;base64,DATA"

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:Src v <img> pomocí PHP proměnné
« Odpověď #19 kdy: 26. 10. 2015, 19:33:02 »
Jendo nemej strach, ze jde o base64 jsem do zapisu uvedl a apostrofy tam mam u beznych obrazku standadne a funguje to....s jisteho duvodu je tam musim mit ,ale nechci to tady zbytecne rozvadet o dalsi tema
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.


Antičobol

Re:Src v <img> pomocí PHP proměnné
« Odpověď #20 kdy: 26. 10. 2015, 19:52:39 »
Jendo nemej strach, ze jde o base64 jsem do zapisu uvedl

Ja nevim, nebylo by dobre sem postnout ten kod, co ti skutecne nefunguje, misto toho, aby sis vymyslel nejaky jiny??? Uz tomu fakt nerozumim.

apostrofy tam mam u beznych obrazku standadne

Eh?

Kit

Re:Src v <img> pomocí PHP proměnné
« Odpověď #21 kdy: 26. 10. 2015, 20:40:30 »
Proč místo značky img nepoužiješ značku svg?
Kód: [Vybrat]
<!DOCTYPE html>
<html>
<body>
<svg width='100' height='100'>
    <circle cx='50' cy='50' r='40' stroke='green' stroke-width='4' fill='yellow' />
</svg>
</body>
</html>

Re:Src v <img> pomocí PHP proměnné
« Odpověď #22 kdy: 26. 10. 2015, 22:48:37 »
zkusil jsem:
<img src='data:image/svg+xml; <svg width='100' height='100'>  <circle cx='50' cy='50' r='40' stroke='green' stroke-width='4' fill='yellow' /></svg> ' />

no a tady mas s tema apostrofama evidentne chybu. protoze ten apostrof za width= ti uzavre ten co je pred data:image
Děkuji za možnost editace příspěvku.

Re:Src v <img> pomocí PHP proměnné
« Odpověď #23 kdy: 27. 10. 2015, 10:37:11 »
No, hlavne v parametre tagu nemozes mat dalsi tag... (v img src nemozes uviest <svg>), jedine ze by si pouzil CDATA (ak sa bavime o xhtml). Do SRC ma ist URI, pripadne este data v base64.

Mas tieto moznosti:
1. ako niekto spominal, v src uviest nejaky skript, napr. obrazok.php a tomu predat ako argument nejake id alebo nejaky string, na zaklade ktoreho bude schopny obrazok vygenerovat. Takze id zdroja, alebo rovno data toho obrazku. Implementacne relativne jednoduche a riesi to za teba vela veci (lahko nastavis/zrusi cachovanie, ak nema uzivatel zapnute obrazky, nedojde ani k requestu, nezdrziava load stranky -- generovanie obrazku sa robi v inom requeste). A ako vystup vies pouzit bud nejaky binarny format alebo aj SVG, musis len setnut spravny content-type.

To by vyzeralo cca takto:

HTML:
Kód: [Vybrat]
<img src="obrazok.php?id=123" />
Kod na strane servra:
Kód: [Vybrat]
<?php
Header
("Content-Type: image/svg+xml");

$id=$_GET['id'];

if (
$id == 1) {
// nejako vytvorime obsah, pravdepodobne pouzijeme nejaku libku, v tomto priklade to dame natvrdo. data vytiahneme odnekial podla idcka, pripadne tam mozme mat rovno string s datami
$svg "<svg width='100' height='100'><circle cx='50' cy='50' r='40' stroke='green' stroke-width='4' fill='yellow' /></svg>";
}
else {
$svg "<svg width='100' height='100'><circle cx='50' cy='50' r='40' stroke='green' stroke-width='4' fill='blue' /></svg>";
}

// vratime SVG.
echo $svg;
?>


2. pouzit zdrojove XMLko + xslt na jeho transformaciu na SVG. Idealne ak mas jednoduchu sablonovitu logiku na vygenerovanie obrazku a vies mu dat zdrojove data v xml. Prikald: http://edutechwiki.unige.ch/en/XSLT_to_generate_SVG_tutorial

3. Vlozit priamo vygenerovany obrazok v base64, napr takto: http://danielmclaren.com/2008/03/embedding-base64-image-data-into-a-webpage. Vhodne len pre male veci, ktore nechces cachovat. Takisto zdrzuje load stranky, na rozdiel od prvych dvoch rieseni. Mozes narazit na problem pri niektorych browseroch.

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:Src v <img> pomocí PHP proměnné
« Odpověď #24 kdy: 27. 10. 2015, 10:53:24 »
proč použávám v tomto případě (mPDF) apostrofy?
protože jsem zvolic cestu html zápisu
standardni funkcni zapis, kde telo promene je obaleno do apostrofu je takto:
$html = ' <div id="pieces">  pieces:  </div> ';
$mpdf -> WriteHTML($html);
$mpdf -> Output('pdf/test.pdf', 'I');


problem nastane pokud do html vsadim php promenou (do PDF se nevyrenderuje hodnota promene):
$html = ' <div id="pieces">  pieces: $pieces </div> ';

pokud zapis provedu jinak a to nahradou apostrofu za uvozovky (hodnota promene se vyrenderuje spravne):
$html = " <div id=\"pieces\">  pieces: $pieces </div> ";
ale vsimnete si ze musim escapovat vnitrni uvozovky

a to je duvod proc pouzivam uvnitr apostrofy....nemusim pak escapovat:
$html = " <div id='pieces'>  pieces: $pieces </div> ";
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

Kit

Re:Src v <img> pomocí PHP proměnné
« Odpověď #25 kdy: 27. 10. 2015, 11:12:55 »
a to je duvod proc pouzivam uvnitr apostrofy....nemusim pak escapovat:

Tak používej uvozovky bez escapování:
Kód: [Vybrat]
$pieces = 20;
$html = <<<EOT
<body>
<div id="pieces">pieces: $pieces</div>
</body>
EOT;

Roman

Re:Src v <img> pomocí PHP proměnné
« Odpověď #26 kdy: 27. 10. 2015, 11:38:02 »
proč použávám v tomto případě (mPDF) apostrofy?
protože jsem zvolic cestu html zápisu
standardni funkcni zapis, kde telo promene je obaleno do apostrofu je takto:
$html = ' <div id="pieces">  pieces:  </div> ';
$mpdf -> WriteHTML($html);
$mpdf -> Output('pdf/test.pdf', 'I');


problem nastane pokud do html vsadim php promenou (do PDF se nevyrenderuje hodnota promene):
$html = ' <div id="pieces">  pieces: $pieces </div> ';

....................

Je ještě čtvrtá varianta, jak to napsat, a nemusí se nic eskejpovat:
Kód: [Vybrat]
$html = ' <div id="pieces">  pieces:' . $pieces . '</div> ';

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:Src v <img> pomocí PHP proměnné
« Odpověď #27 kdy: 27. 10. 2015, 11:52:13 »
hoši moc díky!
ad progman)
zkouším tu variantu 1.) kde do src uvedu url na php scrip...pokud to svg v tom scriptu necham natvrdo zapsane, tak jak jsi to demonstroval Ty
...funguje to,

ale nedaří se mi to pokud to svg tam předám takto:
Kód: [Vybrat]
<?php
Header
("Content-Type: image/svg+xml");

$id $_POST['id'];
$post_data $_POST['structureSVG'];

echo 
$post_data;
?>

když se podívám na response co vrací server, tak je tam očekávaný svg/xml string, který jsem získal ajaxem z původní stránky
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

Re:Src v <img> pomocí PHP proměnné
« Odpověď #28 kdy: 27. 10. 2015, 12:09:20 »
hlavicky u toho svg neresis?
Děkuji za možnost editace příspěvku.

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:Src v <img> pomocí PHP proměnné
« Odpověď #29 kdy: 27. 10. 2015, 12:28:43 »
hlavicky u toho svg neresis?

abych pravdu řekl, tak jak to leží na webu, tak v takovém stavu to vemu->odešlu ajaxem a v php scriptu zachytím pro další zpracování,
když se na konci tohoto procesu podívám na vnitřní struktutu toho SVG, je stejná jako na začátku (zobrazitelný svg obrázek), proto v průběhu toho procesu hlavičky neupravuji
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.