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ş';
}
ne slaytı, ne tekerleği? sen şu yazdığından bir anlam çıkarabildin mi gerçekten, ben çıkartamadım çünkü
css'de parent'ı ya da öncesini seçme durumu olmadığı için yapamazsın :) jquery ile şöyle bir şey yapabilirsin
<div class="purpose">başka bir div</div>
<div class="container">
<div>1. div</div>
<div>2. div</div>
<div>3. div</div>
</div>
<style>
.purpose.active {
background-color: lime;
}
</style>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$('.container div').on('mouseover', function() {
$('.purpose').addClass('active');
}).on('mouseleave', function() {
$('.purpose').removeClass('active');
});
</script>
güncel olması için bir sebep yok zaten, oturum yönetimi ne zamandan beri farklılaştı ki :)
ben https://packagist.org/ adresinden arıyordum paketleri belki sen de şansını deneyebilirsin
bir sürü markdown parser var aslında, örneğin
https://github.com/michelf/php-markdown
composer
olmadan ifadesi çok anlamsız, çünkü kolayca kurmak varken neden uğraşmak isteyesin? çok istiyorsan kaynak kodlarını indirip uğraşarak projene dahil edebilirsin ama dediğim gibi, bir anlamı yok bunun :)
python'ın re
modülündeki sub()
metodunu kullanarak bunu bir html tagı içine alabilirsin, örneğin;
import re
txt = "Güzel film blabla [--spoiler--]Bilmem ne ölüyor[--spoiler--] spoilersız yazı devam ediyor.. [--spoiler--]tekrar bir spoiler[--spoiler--] ve son :)"
replaced_txt = re.sub('\[--spoiler--\](.*?)\[--spoiler--\]', r'<span class="spoiler">\1</span>', txt)
print(replaced_txt)
# Güzel film blabla <span class="spoiler">Bilmem ne ölüyor</span> spoilersız yazı devam ediyor.. <span class="spoiler">tekrar bir spoiler</span> ve son :)