istediğiniz konuları listelerken eğer bir yanıt varsa bunu başında YNT:
olarak belirtmek mi? ona göre bir sql kodu paylaşacağım çünkü
is_numeric()
ile değeri kontrol edip eğer true
dönüyorsa geriye (float)
olarak döndürebilirsin. Örnek bir fonksiyon;
function convertData($data) {
return array_map(function($value) {
if (is_numeric($value)) return (float) $value;
return $value;
}, $data);
}
kullanırkende
$data = [
'toplam' => '109.51',
'tarih' => '2021-05-03',
'paraBirimi' => 'TRY',
'tesisatNo' => '',
'zaman' => '18:54:38',
'odenecek' => '118.27',
'vergi' => '8.76',
'gonderimSekli' => 'KAGIT'
];
var_dump(convertData($data));
/*
array(8) {
["toplam"]=>
float(109.51)
["tarih"]=>
string(10) "2021-05-03"
["paraBirimi"]=>
string(3) "TRY"
["tesisatNo"]=>
string(0) ""
["zaman"]=>
string(8) "18:54:38"
["odenecek"]=>
float(118.27)
["vergi"]=>
float(8.76)
["gonderimSekli"]=>
string(5) "KAGIT"
}
*/
// ya da json çıktısı
echo json_encode(convertData($data));
/*
{
"toplam": 109.51,
"tarih": "2021-05-03",
"paraBirimi": "TRY",
"tesisatNo": "",
"zaman": "18:54:38",
"odenecek": 118.27,
"vergi": 8.76,
"gonderimSekli": "KAGIT"
}
*/
buna neyin sebep olduğundan emin değilim, başka kodlar etkiliyor olabilir ama en kötü ihtimalle min
ve max
değerleride ekleyip sabitleştirebilirsin.
img {
--image-size: 50px; /* boyutu buradan ayarla */
width: var(--image-size);
min-width: var(--image-size);
max-width: var(--image-size);
height: var(--image-size);
min-height: var(--image-size);
max-height: var(--image-size);
border-radius: 50%;
}
javascript dosyanı sayfanın en altında çağırman gerekiyor ya da yukarıda çağıracaksan şu kodların içinde yazman lazım;
document.addEventListener('DOMContentLoaded', function(){
// kodların
});
bu açıkçası gördüğüm tüm pwa uygulamalarında olan bir sorun, twitter'ın uygulamasını aynı şekilde indirip denersen ondada tema değiştirdiğimizde aynı problem oluyor.
muhtemelen bir bug ve yakın zamanda bir düzenleme gelecektir.
en basit haliyle
<table border="1" width="100%">
<thead>
<tr>
<th>ID</th>
<th>Başlık</th>
<th>Durum</th>
</tr>
</thead>
<tbody>
<tr data-id="1">
<td>1</td>
<td>Başlık 1</td>
<td class="status"></td>
</tr>
<tr data-id="2">
<td>2</td>
<td>Başlık 2</td>
<td class="status"></td>
</tr>
<tr data-id="3">
<td>3</td>
<td>Başlık 3</td>
<td class="status"></td>
</tr>
</tbody>
</table>
<button id="get-request-btn">Sorgula</button>
<style>
tr.error td {
background: orangered;
color: #fff;
}
tr.success td {
background: green;
color: #fff;
}
</style>
ve javascript tarafın
let total = $('table tbody tr').length,
current = 0
$('#get-request-btn').on('click', () => {
if (current + 1 < total) {
getRequest(current);
}
});
function getRequest(current) {
const tr = $('table tbody tr:eq(' + current + ')');
const id = tr.data('id');
$.post('ajax.php', {id}, function(response) {
tr.find('td:last').text(response.status);
if (response.statusCode == 1) {
tr.addClass('error');
} else {
tr.addClass('success');
}
if (current < total) {
getRequest(current);
}
}, 'json');
current += 1;
}
php tarafın
<?php
sleep(1);
$id = $_POST['id'];
$status = ['Başarılı', 'Hata!'];
$statusCode = rand(0,1);
echo json_encode([
'id' => $id,
'status' => $status[$statusCode],
'statusCode' => $statusCode
]);
bunları kendine göre uyarlamak sana kalmış :)
burada .container
için sabit bir genişliğin olması lazım, diğer türlü esnemeye devam edecektir.
çünkü instagram izin vermiyor, o buna izin verene kadar yapabileceğimiz çok bir şey yok :)
İlk kontrolün gönderilen base64'ün geçerli bir base64 olup olmadığı olabilir. Bunun içinde base64_decode()
fonksiyonunda 2. parametreye true
verip tekrar base64_encode()
ile base64'e çevirip gönderilenle eşleşip eşleşmediğine bakacaksın. Yani;
Not: base64 başındaki data:image/(png|jpg|jpeg|webp);base64,
değerlerini replace etmeyi unutma bu arada.
$base64_string = 'gönderilen base64 değer';
$base64_check = base64_encode(base64_decode($base64_string, true));
if ($base64_check === $base64_string) {
// geçerli bir base64 gönderilmiş
} else {
// hatalı bir base64 gönderilmiş
}
Bir diğer bakacağın ise, bu base64'den imagecreatefromstring()
ile görseli oluşturup oluşturamadığına bakmak olabilir.
$base64_string = 'gönderilen base64 değer';
$image = imagecreatefromstring(base64_decode($base64_string));
if (!$image){
// gönderilen bir resim değil
} else {
// gönderilen resim
}
yani kısaca şöyle bir fonksiyon işini çözecektir;
function isValidImage($base64_string)
{
$base64_check = base64_encode(base64_decode($base64_string, true));
if ($base64_check !== $base64_string){
return false;
}
$image = imagecreatefromstring(base64_decode($base64_string));
if (!$image){
return false;
}
return true;
}
$base64_string = 'gönderilen base64 değer';
if (isValidImage($base64_string)) {
echo 'base64 formatında geçerli bir resim gönderilmiş';
}