Şöyle denediniz mi;
<?php echo date('Y-m-d H:i:s', strtotime($row["tarih"])); ?>
şöyle yapabilirsin;
<?php
$actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
echo '<input type=\'hidden\' name=\'url\' value=\'' . explode('?', $actual_link)[0] . '\'>';
if (isset($_GET['utm_source'])){
echo '<input type=\'hidden\' name=\'utm_source\' value=\'' . $_GET['utm_source'] . '\'>';
}
if (isset($_GET['utm_medium'])){
echo '<input type=\'hidden\' name=\'utm_medium\' value=\'' . $_GET['utm_medium'] . '\'>';
}
?>
pathinfo() fonksiyonunu deneyebilirsin. Yada en basit olarak;
$dosya = end(explode('.', $_FILES['dosya']['name']));
echo $dosya;
Eğer fiyat verme konusunda bilgin yoksa o iş hakkında da çok tecrüben yok demektir :) Dolayısı ile piyasanın üstünde bir fiyat vermen çok mümkün değil.
Gel gelelim, biz neye göre tavsiye vereceğiz sana? Ne iş tanımı belli, ne ne yapacağın belli. İş dövizle olmuş ya da olmamış çok önemli değil, müşteri seni Türkiye'de daha uyguna çalıştıkları için mi tercih etti, işini iyi yaptığın için mi?
Eğer Türkiye'de daha ucuza yaptırmak istiyorsa ve zaten işin fiyatı belliyse ya kabul edersin ya da etmezsin :) Ücretlendirme konusu tamamen açık bir konu, seni 1 aylık projede 5.000 TL almak mutlu ediyordur ve kurtarıyordur bir başkasını 10.000 TL almak.
Yani bir iş birden fazla kritere göre farklı fiyatlarda yapılabilir. Senin kriterlerin nelerdir önemli olan bu :)
Eğer hepsi birbirinin aynı sayfalarsa o zaman canonical belirtmen gerek. Yani şöyle düşün;
http://siteadi.com/138-satilik-urun
http://siteadi.com/138-satilik-urun?id=5
http://siteadi.com/138-satilik-urun?id=5&tag=2
http://siteadi.com/138-satilik-urun?ge=view&id=5&tag=6
bu linklerin hepsi aslında http://siteadi.com/138-satilik-urun bununla aynı olduğu için canonical linkimizde bu olacak. Böylece google biliyor ki, bu 4 linkte tek bir linki temsil ediyor.
<link rel="canonical" href="http://siteadi.com/138-satilik-urun">
Çok basit olarak required olan ve required olup aynı zamanda :valid olanların sayısını kontrol ederek dinamik bir kontrol işlemi yapabilirsin. Örnek vermek gerekirse;
<form action="" method="post" onsubmit="return false" id="form1">
<input type="text" name="username" placeholder="Kullanıcı adın" required> <br>
<input type="text" name="email" placeholder="E-posta"> <br>
<input type="text" name="password" placeholder="Şifren" required> <br>
<button type="button" onclick="kontrolAjax('#form1')">Gönder</button>
</form>
function kontrolAjax(form){
var requiredFields = $(form + ' [required]').length,
validRequiredFields = $(form + ' [required]:valid').length;
if (requiredFields == validRequiredFields){
// zorunlu alanlar doldurulmuştur, ajax işlemini yap
} else {
alert('Lütfen tüm zorunlu alanları doldurun.');
}
}
Şu şekilde açabilirsin;
open -a "Google Chrome" index.html
Eğer projeni atıyorum http://localhost/projeadi şeklinde otomatik açmak istersen ise şunu deneyebilirsin;
alias local='open -a "Google Chrome" "http://localhost/${PWD##*/}/"'
# alias tanımladıktan sonra artık ilgili klasöre gidip "local" demen yeterli
cd test
local
yani burada böyle yaparsan sırası çok önemli olacak, dilersen tek tek elle alıp url birleştirip gönderebilirsin. Örneğin;
<form action="islem.php" onsubmit="return false" method="GET">
<select name="isim">
<option value="riza">Rıza</option>
<option value="kemalettin">Kemalettin</option>
<option value="asli">Aslı</option>
<option value="irem">İrem</option>
</select>
<select name="sehir">
<option value="kastamonu">Kastamonu</option>
<option value="adana">Adana</option>
<option value="mugla">Muğla</option>
</select>
<select name="meslek">
<option value="tekstil">Tekstil</option>
<option value="otomotiv">Otomotiv</option>
<option value="mobilya">Mobilya</option>
</select>
<input type="submit" id="submit-btn" value="Gönder">
</form>
<script>
$('#submit-btn').on('click', function(e){
var isim = $('select[name="isim"]').val(),
sehir = $('select[name="sehir"]').val(),
meslek = $('select[name="meslek"]').val();
window.location.href = `http://siteadi.com/islem.php/${isim}/${sehir}/${meslek}`;
e.preventDefault();
});
</script>
ya da formdaki tüm elemanları alıp dinamik olarak yapmak istersen şöyle yapabilirsin;
$('#submit-btn').on('click', function(e){
var data = $('form').serialize();
data = data.split('&').map((val, key) => {
return val.split('=')[1];
});
window.location.href = 'http://siteadi.com/islem.php/' + data.join('/');
e.preventDefault();
});
Senin tam json formatını bilemiyorum ancak şu formatta olduğunda düzgün alıyorum, kodu direk çalıştırıp test edebilirsin;
<?php
$json = '{
"Status": true,
"Data": [
{
"uniqueid": "1573421921.95355",
"values": [
{
"date": "11.11.2019 00:38:41",
"destination": "123456789",
"source": "123456789",
"duration": "00:00:00",
"direction": 3,
"recording": "",
"line": "123456789",
"directory": "\"123456789\" <123456789>"
}
]
}
]
}';
$data = json_decode($json);
echo $data->Data{0}->values{0}->destination;
?>
Bir kanaldaki abone listesine doğrudan erişemezsin. Ancak Google Auth kullanarak kullanıcıdan izin alacaksın ancak o zaman listeleme yaparsın. Onun içinde aşağıdaki linke bakabilirsin, zaten API kullanımını bir kere anlarsan gerisinin sadece endpoint'i değiştirmek olduğunu anlarsın ^^
https://developers.google.com/youtube/v3/docs/subscriptions/list