Her şeyi div'e çevirdim.
echo "<div class='kelimeler'>";
foreach($h as $item) {
echo "<div class='kelimeKapsayici'>";
$kelime = $item["kelime"];
echo " <div class='kelime'>";
echo " <div>Kelime:</div>";
echo " <div>$kelime</div>";
echo " </div>";
echo " <div class='anlamlar'>";
echo " <div>Anlamlar</div>";
foreach($item["anlamlar"] as $anlam) {
$anlamStr = $anlam["anlam"];
$ozellik = $anlam["ozellik"];
echo "<div class='anlam'>";
echo " <div>";
echo " <div>Özellik:</div>";
echo " <div>$ozellik</div>";
echo " </div>";
echo " <div>";
echo " <div>Anlam:</div>";
echo " <div>$anlamStr</div>";
echo " </div>";
echo "</div>";
};
echo "</div>";
echo "<div class='birlesikler'>";
foreach($item["birlesikler"] as $birlesik) {
echo "<div>$birlesik</div>";
};
echo "</div>";
echo "</div>";
};
echo "</div>";
foreach($item["anlamlar"] as $anlam) {
$anlamArr = explode(" ", $anlam["anlam"]);
for($i=0; $i<count($anlamArr); $i++) $anlamArr[$i] = div($anlamArr[$i]);
$anlamlar .= li(i("Özellik: ".$anlam["ozellik"]).div(implode("",$anlamArr)));
};
belki böyle olabilir bu foreach'i değiştirirseniz.
Anlamlarda geçen cümleyi boşluk karakterlerinden ayırıp her birini bir div içine alacak.
Şu an şöyle bir yapı oluşuyor olmalı:
<div>
<div>
<strong>Kelime: </strong>
<span>kelime</span>
</div>
<section>
<div>
<div><strong>Anlamlar</strong></div>
<ul>
<li><i>(Özellik: özellik)</i><span>anlam metni...</span></li>
<li><i>(Özellik: özellik)</i><span>anlam metni...</span></li>
</ul>
</div>
<div>
<div><strong>Birleşikler</strong></div>
<ul>
<li><span>birleşik kelime</span></li>
<li><span>birleşik kelime</span></li>
</ul>
</div>
</section>
</div>
Siz nasıl bir yapı istiyorsunuz?
Doğrudan kapsayıcı bir div içine alabilirsiniz.
Örn 2.kodu kullanıyorsanız:
echo $kelimeler;
yerine echo "<div>$kelimeler</div>";
yazarsınız.
Hata kodlarını görebilmek için sayfanın üstünde bir yere şunları yazmayı deneyebilirsiniz:
error_reporting(E_ALL);
ini_set('display_errors', 1);
Önceki mesajımı düzenledim. Noktalı virgül hatası olabilir...
function div($content) { return "<div>$content</div>"; }
function section($content) { return "<section>$content</section>"; }
function strong($content) { return "<strong>$content</strong>"; }
function span($content) { return "<span>$content</span>"; }
function i($content) { return "<i>$content</i>"; }
function ul($content) { return "<ul>$content</ul>"; }
function li($content) { return "<li>$content</li>"; }
$kelimeler = "";
$anlamlar = "";
$birlesikler = "";
foreach($h as $item) {
foreach($item["anlamlar"] as $anlam) {
$anlamlar .= li(i($anlam["ozellik"]).div($anlam["anlam"]));
};
foreach($item["birlesikler"] as $birlesik) {
$birlesikler .= li(span($birlesik));
};
$kelimeler .= div(
div(strong("Kelime: ").span($item["kelime"]))
.section(div(strong("Anlamlar")).ul($anlamlar))
.section(div(strong("Birleşikler")).ul($birlesikler))
);
};
echo $kelimeler;
Kodları test etme imkânım yok şu an. Varsayımsal olarak yazdım.
Hata veriyorsa sunucuda hata gösterimini açmalısınız yoksa hatayı göremeyiz.
Kodları if(count($h)) {...}
içine alabilirsiniz.
print_r($h);
komutunuzun çıktısı nedir?
Aşağıdaki örneklerden kendinize uygun olanı seçebilirsiniz.
En yakına yuvarla: round()
https://www.php.net/manual/en/function.round.php
round(3.4); // 3
round(3.5); // 4
round(3.6); // 4
round(3.6, 0); // 4
round(5.045, 2); // 5.05
round(5.055, 2); // 5.06
round(345, -2); // 300
round(345, -3); // 0
round(678, -2); // 700
round(678, -3); // 1000
round( 1.55, 1, PHP_ROUND_HALF_UP); // 1.6
round(-1.55, 1, PHP_ROUND_HALF_UP); // -1.6
round( 1.55, 1, PHP_ROUND_HALF_DOWN); // 1.5
round(-1.55, 1, PHP_ROUND_HALF_DOWN); // -1.5
round( 1.55, 1, PHP_ROUND_HALF_EVEN); // 1.6
round(-1.55, 1, PHP_ROUND_HALF_EVEN); // -1.6
round( 1.55, 1, PHP_ROUND_HALF_ODD); // 1.5
round(-1.55, 1, PHP_ROUND_HALF_ODD); // -1.5
round()
'un 3.parametresindeki sabitler:
PHP_ROUND_HALF_UP : Sayıyı 0'dan uzaklaştırarak yuvarlar.
PHP_ROUND_HALF_DOWN : Sayıyı 0'a yaklaştırarak yuvarlar.
PHP_ROUND_HALF_EVEN : Sayıyı en yakın çift sayıya yaklaştırarak yuvarlar.
PHP_ROUND_HALF_ODD : Sayıyı en yakın tek sayıya yaklaştırarak yuvarlar.
Yukarı yuvarla: ceil()
https://www.php.net/manual/en/function.ceil.php
ceil(4.3); // 5
ceil(9.999); // 10
ceil(-3.14); // -3
Aşağı yuvarla: floor()
https://www.php.net/manual/en/function.floor.php
floor(4.3); // 4
floor(9.999); // 9
floor(-3.14); // -4
Siz, sayının kendisinden büyük ilk tam veya buçuklu sayıya yuvarlanmasını istiyorsunuz.
Yani 1.2 ise, kendisinden büyük ilk tam veya buçuklu sayı olan 1.5'e yuvarlansın.
Yani 1.7 ise, kendisinden büyük ilk tam veya buçuklu sayı olan 2.0'a yuvarlansın.
Bunun için özel bir fonksiyon oluşturmanız gerekecek. Şöyle bir fonksiyon yazdım:
function roundUpHalfOrInt($num) {
if(!is_numeric($num)) throw new Exception('Parameter of roundUpHalfOrInt() is not numeric!');
$num = (float)$num;
$numStr = (string)$num;
$numArr = explode(".", $numStr);
if(count($numArr)<2) return (float)$num;
$numFloatSide = (int)((string)$numArr[1])[0];
if($numFloatSide===0) return (float)$num;
if($numFloatSide < 5) return (float)($numArr[0].".5");
return (float)($numArr[0]+1);
}
Bu fonksiyona sayısal değeri verirseniz bahsettiğiniz şekilde yukarı yuvarlama yapacaktır.
React Native öğrenirseniz Dart yerine Javascript kullanırsınız.
React Native'de fulltime veya freelance iş bulma olanağı daha fazladır.
React Native öğrenirken React da öğrenmiş olursunuz.
React Native'i seçmeniz sizin için daha iyi olur.
Ama ikisinde de birer todo uygulaması yapmanızı, böylece ikisinin de mantığını uygulayarak görmenizi tavsiye ederim.
Hangisini öğrenmenin daha kolay olduğu tartışılır ama öğrenme hızı açısından aralarında uçurum görmüyorum. React Native belki size daha zor veya daha kolay gelebilir. Ama hem iş imkânı açısından, hem de ekipçe çalışacak insan bulmanın daha kolay olacağını düşünerek size daha zor gelse bile React Native'i tercih etmenizi öneriyorum.
Kullanmadım ama zorlayan biri kodunuzu kırabilir gibi görünüyor.
Sonuçta bu kodun çalışması için gereken tüm bilgi yine aynı sayfada.
Ama şifreyi kırıp asıl kodunuza erişebilmek için zaman harcamak gerekir.
https://emn178.github.io/online-tools/base64_decode.html ve https://onlinephp.io/ sitelerini kullanarak şifreleri biraz inceledim.
Şifreli kodu açtığınızda karşınıza yine şifrelenmiş kod çıkıyor.
O kodu açtığınızda yine şifrelenmiş bir kod çıkıyor.
O kodu açtığınızda yine... Matruşka gibi.
Ama uğraşa uğraşa sonuca ulaşmak mümkün gibi geldi bana. Yine de sonuna kadar gitmediğim için bilemem tabi.
Ayrıca kodu bu şekliyle şifrelerseniz sayfanız şifre çözmekle de uğraşacağı biraz geç açılacaktır.
Advenced muhtemelen daha güvenlidir. Çünkü kodun hangi yöntemle çözüldüğü ve kodun anahtar bilgisi sayfanın içinde olmayacak.
Muhtemelen sizin ayrı bir kullanıcı adı şifre ile koruyacağınız bir dosyada tutulacak. Böylece sunucuya kuracağınız bu dosya kırılmadığı sürece kodunuzun nasıl çözüldüğü bilinemeyecek.
İki türlü de ben kullanmadığım için kesin konuşamıyorum...