{"id":1,"date":"2026-08-19T10:53:20","date_gmt":"2026-08-19T10:53:20","guid":{"rendered":"https:\/\/zorin.ro\/?p=1"},"modified":"2026-08-20T11:57:43","modified_gmt":"2026-08-20T08:57:43","slug":"hello-world","status":"publish","type":"post","link":"https:\/\/zorin.ro\/index.php\/2026\/08\/19\/hello-world\/","title":{"rendered":"Hello world!"},"content":{"rendered":"<p>Lorem ipsum dolor sit amet consectetur adipiscing elit. <a href=\"#\">Quisque<\/a> faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.<br>\n<div class=\"zorin-ide-block is-collapsed\"><div class=\"zorin-ide-header\"><div class=\"zorin-ide-dots\"><span class=\"dot-red\"><\/span><span class=\"dot-yellow\"><\/span><span class=\"dot-green\"><\/span><\/div><div class=\"zorin-ide-title\">PHP<\/div><button class=\"zorin-ide-copy-btn\" type=\"button\" title=\"Copiaz\u0103 codul\" aria-label=\"Copiaz\u0103 codul\" onclick=\"zorinCopyCode(this)\"><svg class=\"copy-icon\" width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"><\/rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"><\/path><\/svg><span class=\"copy-text\">Copiaz\u0103<\/span><\/button><\/div><div class=\"zorin-ide-body\"><div class=\"zorin-ide-lines\" aria-hidden=\"true\"><span>1<\/span><span>2<\/span><span>3<\/span><span>4<\/span><span>5<\/span><span>6<\/span><span>7<\/span><span>8<\/span><span>9<\/span><span>10<\/span><span>11<\/span><span>12<\/span><span>13<\/span><span>14<\/span><span>15<\/span><span>16<\/span><span>17<\/span><span>18<\/span><span>19<\/span><span>20<\/span><span>21<\/span><span>22<\/span><span>23<\/span><span>24<\/span><span>25<\/span><span>26<\/span><span>27<\/span><span>28<\/span><span>29<\/span><span>30<\/span><span>31<\/span><span>32<\/span><span>33<\/span><span>34<\/span><span>35<\/span><span>36<\/span><span>37<\/span><span>38<\/span><span>39<\/span><span>40<\/span><span>41<\/span><span>42<\/span><span>43<\/span><span>44<\/span><span>45<\/span><span>46<\/span><span>47<\/span><span>48<\/span><span>49<\/span><span>50<\/span><span>51<\/span><span>52<\/span><span>53<\/span><span>54<\/span><span>55<\/span><span>56<\/span><span>57<\/span><span>58<\/span><span>59<\/span><span>60<\/span><span>61<\/span><span>62<\/span><span>63<\/span><span>64<\/span><span>65<\/span><span>66<\/span><span>67<\/span><span>68<\/span><span>69<\/span><span>70<\/span><span>71<\/span><span>72<\/span><span>73<\/span><span>74<\/span><span>75<\/span><span>76<\/span><span>77<\/span><span>78<\/span><span>79<\/span><span>80<\/span><span>81<\/span><span>82<\/span><span>83<\/span><span>84<\/span><span>85<\/span><span>86<\/span><span>87<\/span><span>88<\/span><span>89<\/span><span>90<\/span><span>91<\/span><span>92<\/span><span>93<\/span><span>94<\/span><span>95<\/span><span>96<\/span><span>97<\/span><span>98<\/span><span>99<\/span><span>100<\/span><span>101<\/span><span>102<\/span><span>103<\/span><span>104<\/span><span>105<\/span><span>106<\/span><span>107<\/span><span>108<\/span><span>109<\/span><span>110<\/span><span>111<\/span><span>112<\/span><span>113<\/span><span>114<\/span><span>115<\/span><span>116<\/span><span>117<\/span><span>118<\/span><span>119<\/span><span>120<\/span><span>121<\/span><span>122<\/span><span>123<\/span><span>124<\/span><span>125<\/span><span>126<\/span><span>127<\/span><span>128<\/span><span>129<\/span><span>130<\/span><span>131<\/span><span>132<\/span><span>133<\/span><span>134<\/span><span>135<\/span><span>136<\/span><span>137<\/span><span>138<\/span><span>139<\/span><span>140<\/span><span>141<\/span><span>142<\/span><span>143<\/span><span>144<\/span><span>145<\/span><span>146<\/span><span>147<\/span><span>148<\/span><span>149<\/span><span>150<\/span><span>151<\/span><span>152<\/span><span>153<\/span><span>154<\/span><span>155<\/span><span>156<\/span><span>157<\/span><span>158<\/span><span>159<\/span><span>160<\/span><span>161<\/span><span>162<\/span><span>163<\/span><span>164<\/span><span>165<\/span><span>166<\/span><span>167<\/span><span>168<\/span><span>169<\/span><span>170<\/span><span>171<\/span><span>172<\/span><span>173<\/span><span>174<\/span><span>175<\/span><span>176<\/span><span>177<\/span><span>178<\/span><span>179<\/span><span>180<\/span><span>181<\/span><span>182<\/span><span>183<\/span><span>184<\/span><span>185<\/span><span>186<\/span><span>187<\/span><span>188<\/span><span>189<\/span><span>190<\/span><span>191<\/span><span>192<\/span><span>193<\/span><span>194<\/span><span>195<\/span><span>196<\/span><span>197<\/span><span>198<\/span><span>199<\/span><span>200<\/span><span>201<\/span><span>202<\/span><span>203<\/span><span>204<\/span><span>205<\/span><span>206<\/span><span>207<\/span><span>208<\/span><span>209<\/span><span>210<\/span><span>211<\/span><span>212<\/span><span>213<\/span><span>214<\/span><span>215<\/span><span>216<\/span><span>217<\/span><span>218<\/span><span>219<\/span><span>220<\/span><span>221<\/span><span>222<\/span><span>223<\/span><span>224<\/span><span>225<\/span><span>226<\/span><span>227<\/span><span>228<\/span><span>229<\/span><span>230<\/span><span>231<\/span><span>232<\/span><span>233<\/span><span>234<\/span><span>235<\/span><span>236<\/span><span>237<\/span><span>238<\/span><span>239<\/span><span>240<\/span><span>241<\/span><span>242<\/span><span>243<\/span><span>244<\/span><span>245<\/span><span>246<\/span><span>247<\/span><span>248<\/span><span>249<\/span><span>250<\/span><span>251<\/span><span>252<\/span><span>253<\/span><span>254<\/span><span>255<\/span><span>256<\/span><span>257<\/span><span>258<\/span><span>259<\/span><span>260<\/span><span>261<\/span><span>262<\/span><span>263<\/span><span>264<\/span><span>265<\/span><span>266<\/span><span>267<\/span><span>268<\/span><span>269<\/span><span>270<\/span><span>271<\/span><span>272<\/span><span>273<\/span><span>274<\/span><span>275<\/span><span>276<\/span><span>277<\/span><span>278<\/span><span>279<\/span><span>280<\/span><span>281<\/span><span>282<\/span><span>283<\/span><span>284<\/span><span>285<\/span><span>286<\/span><span>287<\/span><span>288<\/span><span>289<\/span><span>290<\/span><span>291<\/span><span>292<\/span><span>293<\/span><span>294<\/span><span>295<\/span><span>296<\/span><span>297<\/span><span>298<\/span><span>299<\/span><span>300<\/span><span>301<\/span><span>302<\/span><span>303<\/span><span>304<\/span><span>305<\/span><span>306<\/span><span>307<\/span><span>308<\/span><span>309<\/span><span>310<\/span><span>311<\/span><span>312<\/span><span>313<\/span><span>314<\/span><span>315<\/span><span>316<\/span><span>317<\/span><span>318<\/span><span>319<\/span><span>320<\/span><span>321<\/span><span>322<\/span><span>323<\/span><span>324<\/span><span>325<\/span><span>326<\/span><span>327<\/span><span>328<\/span><span>329<\/span><span>330<\/span><span>331<\/span><span>332<\/span><span>333<\/span><span>334<\/span><span>335<\/span><span>336<\/span><span>337<\/span><span>338<\/span><span>339<\/span><span>340<\/span><span>341<\/span><span>342<\/span><span>343<\/span><span>344<\/span><span>345<\/span><span>346<\/span><span>347<\/span><span>348<\/span><span>349<\/span><span>350<\/span><span>351<\/span><span>352<\/span><span>353<\/span><span>354<\/span><span>355<\/span><span>356<\/span><span>357<\/span><span>358<\/span><span>359<\/span><span>360<\/span><span>361<\/span><span>362<\/span><span>363<\/span><span>364<\/span><span>365<\/span><span>366<\/span><span>367<\/span><span>368<\/span><span>369<\/span><span>370<\/span><span>371<\/span><span>372<\/span><span>373<\/span><span>374<\/span><span>375<\/span><span>376<\/span><span>377<\/span><span>378<\/span><span>379<\/span><span>380<\/span><span>381<\/span><span>382<\/span><span>383<\/span><span>384<\/span><span>385<\/span><span>386<\/span><span>387<\/span><span>388<\/span><span>389<\/span><span>390<\/span><span>391<\/span><span>392<\/span><span>393<\/span><\/div><div class=\"zorin-ide-content\"><pre class=\"zorin-code-highlight language-php\"><code class=\"language-php\">&lt;?php\n\n\/**\n\n* Exemplu de clas\u0103 pentru gestionarea utilizatorilor\n\n*\n\n* Acest cod demonstreaz\u0103:\n\n* - Definirea unei clase PHP\n\n* - Propriet\u0103\u021bi \u0219i metode\n\n* - Constructor\n\n* - Getteri \u0219i setteri\n\n* - Validare date\n\n* - Interac\u021biune cu baza de date (simulat\u0103)\n\n*\/\n\nclass Utilizator {\n\n\/\/ Propriet\u0103\u021bi private (encapsulare)\n\nprivate $id;\n\nprivate $nume;\n\nprivate $email;\n\nprivate $varsta;\n\nprivate $dataInregistrare;\n\n\/**\n\n* Constructor - ini\u021bializeaz\u0103 un nou utilizator\n\n*\n\n* @param string $nume Numele utilizatorului\n\n* @param string $email Adresa de email\n\n* @param int $varsta V\u00e2rsta utilizatorului\n\n*\/\n\npublic function __construct($nume, $email, $varsta) {\n\n$this-&gt;setNume($nume);\n\n$this-&gt;setEmail($email);\n\n$this-&gt;setVarsta($varsta);\n\n$this-&gt;dataInregistrare = date(&#039;Y-m-d H:i:s&#039;);\n\n$this-&gt;id = uniqid(&#039;user_&#039;);\n\n}\n\n\/\/ Getteri\n\npublic function getId() {\n\nreturn $this-&gt;id;\n\n}\n\npublic function getNume() {\n\nreturn $this-&gt;nume;\n\n}\n\npublic function getEmail() {\n\nreturn $this-&gt;email;\n\n}\n\npublic function getVarsta() {\n\nreturn $this-&gt;varsta;\n\n}\n\npublic function getDataInregistrare() {\n\nreturn $this-&gt;dataInregistrare;\n\n}\n\n\/\/ Setteri cu validare\n\npublic function setNume($nume) {\n\nif (strlen($nume) &lt; 2) {\n\nthrow new Exception(&quot;Numele trebuie s\u0103 aib\u0103 cel pu\u021bin 2 caractere&quot;);\n\n}\n\n$this-&gt;nume = htmlspecialchars(trim($nume));\n\nreturn $this;\n\n}\n\npublic function setEmail($email) {\n\nif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {\n\nthrow new Exception(&quot;Adresa de email invalid\u0103&quot;);\n\n}\n\n$this-&gt;email = strtolower(trim($email));\n\nreturn $this;\n\n}\n\npublic function setVarsta($varsta) {\n\nif (!is_numeric($varsta) || $varsta &lt; 18 || $varsta &gt; 120) {\n\nthrow new Exception(&quot;V\u00e2rsta trebuie s\u0103 fie \u00eentre 18 \u0219i 120 de ani&quot;);\n\n}\n\n$this-&gt;varsta = (int)$varsta;\n\nreturn $this;\n\n}\n\n\/**\n\n* Salveaz\u0103 utilizatorul \u00een baza de date (simulat)\n\n*\n\n* @return bool True dac\u0103 salvarea a reu\u0219it\n\n*\/\n\npublic function salveaza() {\n\n\/\/ Aici ar veni codul real de salvare \u00een baza de date\n\n\/\/ Simul\u0103m o salvare reu\u0219it\u0103\n\necho &quot;Utilizatorul &#039;{$this-&gt;nume}&#039; a fost salvat cu succes!\\n&quot;;\n\nreturn true;\n\n}\n\n\/**\n\n* Afi\u0219eaz\u0103 informa\u021biile utilizatorului\n\n*\n\n* @return string\n\n*\/\n\npublic function __toString() {\n\nreturn sprintf(\n\n&quot;ID: %s\\nNume: %s\\nEmail: %s\\nV\u00e2rst\u0103: %d\\n\u00cenregistrat: %s&quot;,\n\n$this-&gt;id,\n\n$this-&gt;nume,\n\n$this-&gt;email,\n\n$this-&gt;varsta,\n\n$this-&gt;dataInregistrare\n\n);\n\n}\n\n}\n\n\/**\n\n* Clasa pentru gestionarea colec\u021biei de utilizatori\n\n*\/\n\nclass GestionarUtilizatori {\n\nprivate $utilizatori = [];\n\npublic function adaugaUtilizator(Utilizator $utilizator) {\n\n$this-&gt;utilizatori[$utilizator-&gt;getId()] = $utilizator;\n\nreturn $this;\n\n}\n\npublic function stergeUtilizator($id) {\n\nif (isset($this-&gt;utilizatori[$id])) {\n\nunset($this-&gt;utilizatori[$id]);\n\nreturn true;\n\n}\n\nreturn false;\n\n}\n\npublic function getUtilizator($id) {\n\nreturn $this-&gt;utilizatori[$id] ?? null;\n\n}\n\npublic function getTotiUtilizatorii() {\n\nreturn $this-&gt;utilizatori;\n\n}\n\npublic function numarUtilizatori() {\n\nreturn count($this-&gt;utilizatori);\n\n}\n\n\/**\n\n* Caut\u0103 utilizatori dup\u0103 nume (par\u021bial)\n\n*\n\n* @param string $cautare Textul c\u0103utat\n\n* @return array Utilizatorii g\u0103si\u021bi\n\n*\/\n\npublic function cautaDupaNume($cautare) {\n\n$rezultate = [];\n\n$cautare = strtolower($cautare);\n\nforeach ($this-&gt;utilizatori as $utilizator) {\n\nif (strpos(strtolower($utilizator-&gt;getNume()), $cautare) !== false) {\n\n$rezultate[] = $utilizator;\n\n}\n\n}\n\nreturn $rezultate;\n\n}\n\n}\n\n\/\/ ==================== EXEMPLU DE UTILIZARE ====================\n\ntry {\n\n\/\/ Cre\u0103m un gestionar de utilizatori\n\n$gestionar = new GestionarUtilizatori();\n\n\/\/ Cre\u0103m utilizatori\n\n$user1 = new Utilizator(&quot;Ion Popescu&quot;, &quot;ion.popescu@email.com&quot;, 25);\n\n$user2 = new Utilizator(&quot;Maria Ionescu&quot;, &quot;maria.ionescu@email.com&quot;, 30);\n\n$user3 = new Utilizator(&quot;Andrei Vasilescu&quot;, &quot;andrei@email.com&quot;, 22);\n\n\/\/ Ad\u0103ug\u0103m utilizatorii \u00een gestionar\n\n$gestionar-&gt;adaugaUtilizator($user1)\n\n-&gt;adaugaUtilizator($user2)\n\n-&gt;adaugaUtilizator($user3);\n\n\/\/ Salv\u0103m utilizatorii (simulat)\n\nforeach ($gestionar-&gt;getTotiUtilizatorii() as $utilizator) {\n\n$utilizator-&gt;salveaza();\n\n}\n\n\/\/ Afi\u0219\u0103m to\u021bi utilizatorii\n\necho &quot;\\n=== LISTA UTILIZATORI ===\\n&quot;;\n\nforeach ($gestionar-&gt;getTotiUtilizatorii() as $utilizator) {\n\necho $utilizator . &quot;\\n&quot;;\n\necho str_repeat(&quot;-&quot;, 40) . &quot;\\n&quot;;\n\n}\n\n\/\/ C\u0103ut\u0103m utilizatori\n\necho &quot;\\n=== C\u0102UTARE DUPA &#039;Ion&#039; ===\\n&quot;;\n\n$rezultate = $gestionar-&gt;cautaDupaNume(&quot;Ion&quot;);\n\nforeach ($rezultate as $utilizator) {\n\necho $utilizator-&gt;getNume() . &quot; (&quot; . $utilizator-&gt;getEmail() . &quot;)\\n&quot;;\n\n}\n\n\/\/ Statistici\n\necho &quot;\\n=== STATISTICI ===\\n&quot;;\n\necho &quot;Total utilizatori: &quot; . $gestionar-&gt;numarUtilizatori() . &quot;\\n&quot;;\n\n} catch (Exception $e) {\n\necho &quot;Eroare: &quot; . $e-&gt;getMessage() . &quot;\\n&quot;;\n\n}\n\n\/\/ ==================== FUNC\u021aII UTILE ====================\n\n\/**\n\n* Func\u021bie pentru formatarea datelor\n\n*\/\n\nfunction formateazaData($data, $format = &#039;d\/m\/Y H:i&#039;) {\n\n$timestamp = strtotime($data);\n\nreturn date($format, $timestamp);\n\n}\n\n\/**\n\n* Func\u021bie pentru validarea unui num\u0103r de telefon rom\u00e2nesc\n\n*\/\n\nfunction valideazaTelefon($telefon) {\n\n\/\/ Elimin\u0103m spa\u021biile \u0219i caracterele speciale\n\n$telefon = preg_replace(&#039;\/[^0-9+]\/&#039;, &#039;&#039;, $telefon);\n\n\/\/ Verific\u0103m formatul\n\nreturn preg_match(&#039;\/^(\\+4|0)?7[0-9]{8}$\/&#039;, $telefon) === 1;\n\n}\n\n\/\/ Test\u0103m func\u021biile utile\n\necho &quot;\\n=== TEST FUNC\u021aII UTILE ===\\n&quot;;\n\necho &quot;Data formatat\u0103: &quot; . formateazaData(&#039;2026-08-20 14:30:00&#039;) . &quot;\\n&quot;;\n\necho &quot;Telefon valid (0722123456): &quot; . (valideazaTelefon(&#039;0722123456&#039;) ? &#039;DA&#039; : &#039;NU&#039;) . &quot;\\n&quot;;\n\necho &quot;Telefon valid (0722): &quot; . (valideazaTelefon(&#039;0722&#039;) ? &#039;DA&#039; : &#039;NU&#039;) . &quot;\\n&quot;;\n\n?&gt;<\/code><\/pre><\/div><\/div><div class=\"zorin-ide-expand-bar\"><button class=\"zorin-ide-expand-btn\" type=\"button\" title=\"Afi\u0219eaz\u0103 tot codul\" aria-label=\"Afi\u0219eaz\u0103 tot codul\" onclick=\"zorinToggleCode(this)\"><span class=\"expand-text\">Afi\u0219eaz\u0103 tot codul (393 r\u00e2nduri) \u25bc<\/span><\/button><\/div><\/div><br>\nLorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.<\/p>\n<p>Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.<\/p>\n<p>Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.<\/p>\n<p>Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/zorin.ro\/index.php\/wp-json\/wp\/v2\/posts\/1"}],"collection":[{"href":"https:\/\/zorin.ro\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zorin.ro\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zorin.ro\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zorin.ro\/index.php\/wp-json\/wp\/v2\/comments?post=1"}],"version-history":[{"count":5,"href":"https:\/\/zorin.ro\/index.php\/wp-json\/wp\/v2\/posts\/1\/revisions"}],"predecessor-version":[{"id":46,"href":"https:\/\/zorin.ro\/index.php\/wp-json\/wp\/v2\/posts\/1\/revisions\/46"}],"wp:attachment":[{"href":"https:\/\/zorin.ro\/index.php\/wp-json\/wp\/v2\/media?parent=1"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zorin.ro\/index.php\/wp-json\/wp\/v2\/categories?post=1"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zorin.ro\/index.php\/wp-json\/wp\/v2\/tags?post=1"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}