Autor | Zpráva | ||
---|---|---|---|
Gecko Profil * |
#1 · Zasláno: 28. 7. 2015, 22:04:54
Dobrý den,
rád bych se Vás zeptal na následující problém. Mám nyní v poli konstanty: $array_social = array(_facebook, _twitter, _google_plus, _youtube, _linkedin, _google_play); Některé nesou řetězec, některé ne (jsou prázdné). Hodnoty v poli potřebuji vynést do následující podoby: "http://facebook.com/uzivatel", "http://plus.google.com/uzivatel", "http://twitter.com/uzivatel" Výsledek bude tedy následující: <script type="application/ld+json"> { "sameAs" : [ "http://facebook.com/uzivatel", "http://plus.google.com/uzivatel", "http://twitter.com/uzivatel" ] } </script> S čím si nevím rady, tak to je jak jednotlivé konstanty uzavřít do uvozovek, dále pokud nebude nést ani jedna konstanta žádný řetězec, aby se JS vůbec nevypsal. Vím, že hodnoty si čárkami oddělím přes implode(",", $array_social); nicméně si nevím rady s uvozovkami a empty() v celém array. Mohl by mě prosím někdo nakopnout? Děkuji mnohokrát a přeji hezký večer |
||
Alphard Profil |
#2 · Zasláno: 28. 7. 2015, 22:14:55
Zbytečně komplikované. Prázdné hodnoty se vyfiltrují pomocí array_filter() a výpis do json formátu se zařídí pomocí
json_encode(['sameAs' => $array_social]) . Celé obalit podmínkou, jestli to pole není prázdné.
|
||
Gecko Profil * |
#3 · Zasláno: 28. 7. 2015, 22:19:06
Děkuji za odpověď.
Vyzkouším Váš postup :-) |
||
Gecko Profil * |
#4 · Zasláno: 29. 7. 2015, 19:06:43
Dobrý den,
zak vyzkoušeno a funguje, jenom na 2 věci: 1. json_decode špatně vypíše URL: "{"sameAs":{"0":"https:\/\/www.facebook.com\/uzivatel","2":"https:\/\/plus.google.com\/u\/0\/xxxxxxxxxxxxx\/posts"}}," 2. Vypíše se i "pořadí" URL. Kód mám nyní následující: $array_social = array(_facebook, _twitter, _google_plus, _youtube, _linkedin, _google_play); $social_head = array_filter($array_social); $social_head_json = json_encode(['sameAs' => $social_head]); if (!empty($social_head_json)) { $social_head_json_head = $social_head_json.","; } else { $social_head_json_head = null; } Hledal jsem an Google na řešení opravy URL, ale bohužel jsem nic nenašel. Děkuji |
||
Keeehi Profil |
Ten json musíš ještě na straně javascriptové dekódovat.
var variable = JSON.parse('string generated by PHP'); |
||
Alphard Profil |
#6 · Zasláno: 29. 7. 2015, 19:28:09
Gecko:
„2. Vypíše se i "pořadí" URL.“ Vypíše se, když je nestandardní. V tomto případě když v něm jsou díry. Mělo by stačit něco jako json_encode(['sameAs' => array_values([3=>'abc', 'def', 'ghz'])]) |
||
Časová prodleva: 10 let
|
0