PHP SSH2 Kütüphanesi

PHP ile linux server tarafında başka bir linux server a bağlanıp işlem yapmanız gerekiyor ise SSH2 eklentisi tam olarak size göre. Birçok servisimizde ve projemizde kullanmış olduğumuz SSH2 eklentisine ufak bir kütüphane yazdım.

SSH2 kütüphanesini kullanabilmek için kullanmış olduğunuz Linux dağıtımına göre kütüphaneyi kurmanız gerekiyor. Centos 7 için kullanmış olduğum kaynak : https://www.adveyer.com/blog/centos-7-ssh2-php-extension-kurulumu/ Okumaya devam et “PHP SSH2 Kütüphanesi”

Mikrotik C# API Get Parse

Ufak bir proje için Mikrotik Firewall cihazlarından bilgileri çekmek için wiki.mikrotik.com tarafından hazır sınıfı ( Class ) kullanıyoruz.

Bu işlemleri hızlandırmak adına ufak bir Dictionary geri döndüren parse fonksiyonu hazırladık. Dışarıdan gönderilen MK class ı ile mik nesnesini otomatik olarak okuyup parçaladıktan sonra veriyi geriye dizi olarak döndürüyoruz. Bu diziyi örnekleyecek olursak bir tablo gibi geriye dönüyor. Satırlardan oluşuyor. Sütunlar için ise KEY -> VALUE şeklinde yapılanma mevcuttur.

public static Dictionary<int, Dictionary<string, string>> get_parse(MK mik)
{
Dictionary<int, Dictionary<string, string>> temp = new Dictionary<int, Dictionary<string, string>>();
int i = 0;
foreach (var item in mik.Read())
{
Dictionary<string, string> asd = new Dictionary<string, string>();
string[] tmp = item.Split('=');
for (int k = 0; k < tmp.Length; k += 2)
asd.Add(tmp[k], tmp[k + 1]);
temp[i] = asd;
i++;
}
temp.Remove(i - 1);
return temp;
}

PHP ile E-Fatura Mükellefi Sorgulama

Son yıllarda E – Fatura / E – Arşiv muhabbetlerinin döndüğünü biliyorsunuzdur. E-Fatura tarafında yaptığımız bir çalışma üzerinde E-Fatura mükelleflerinin anlık sorgulanması gerektiğini gördük. Bunun için herhangi bir web servis bulamadık. Bundan dolayı kendi web servisimizi yazalım dedik.

Aşağıdaki kod excel çıktısının içerisinde tek seferlik bir text search yaparak cevabını vermekte.  in_string fonksiyonu daha önceden hazırdı. 🙂 ;

function in_string( $string, $val )
{ 
if ( !( strrpos( $string, $val ) === false ) )
return true;
return false;
}

function check_tax( $vkn )
{ 
if( !$vkn || !is_numeric( $vkn ) || !in_array( strlen( $vkn ), array( 10, 11 ) ) )
return false;
set_time_limit( 60 );
$get = file_get_contents("http://sorgu.efatura.gov.tr/kullanicilar/yliste.php?&amp;xls" );
if( !$get )
return false;
$return = false;
if( in_string( $get, $vkn ) )
$return = true;
unset( $get ); // ufak bi temizlik
return $return; 
}
check_tax( 'VERGI_NO' );

Tabiki siz bu işlemi sürekli olarak sorgu.efatura.gov.tr üzerinden çekmek yerine veritabanınıza veya başka bir dosyanıza kaydedip sorgulamalarınızı yapabilirsiniz..

edit : Barış Demir
Bir yazılımcı arkadaşın yardımıyla aşağıdaki kadar olayı basitleştirmiş oldu. Teşekkürler..

function check_cari_tax( $vkn )
{
if( !$vkn )
return 0;
$url = 'http://sorgu.efatura.gov.tr/kullanicilar/yliste.php?ara='.$vkn;
$result = file_get_contents( $url );
if( preg_match( "/".$vkn."/i", $result ) )
return 1;
return 0;
}

 

 

PHP ile Firebase Realtime Database Veri Ekleme

Realtime ( gerçek zamanlı ) olarak uyarı sistemi kullandığımız bir projede yazılımcı bir arkadaşın yardımlarıyla Firebase Realtime Database üzerine PHP CURL ile verileri eklemeyi başardık. 🙂

Kod bloğu aşağıdaki gibidir.

&lt;?php
private function firebase_update( $data )
{
$data = json_encode( $data );

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =&gt; "https://UYGULAMAHAVUZU.firebaseio.com/TABLOADI.json",
CURLOPT_RETURNTRANSFER =&gt; true,
CURLOPT_ENCODING =&gt; "",
CURLOPT_MAXREDIRS =&gt; 10,
CURLOPT_TIMEOUT =&gt; 30,
CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST =&gt; "PATCH",
CURLOPT_POSTFIELDS =&gt; $data,
CURLOPT_HTTPHEADER =&gt; array(
"Cache-Control: no-cache",
"Content-Type: application/json",
"Postman-Token: 99d8fc6b-d20e-43a0-93e6-5e04350ff449"
),
));
$response = curl_exec($curl);
curl_close($curl);
}
?&gt;

UYGULAMAHAVUZU -> Firebase tarafından size verilir.
TABLOADI -> Tablo adı değil fakat JSON verisi olarak KEY değeri diyebiliriz.

Farklı KEY ler oluşturup birden fazla tablo varmış gibi davranabilirsiniz.
Yukarıdaki işlemde RealTime database ayarlarında kurallar aşağıdaki gibi olmalıdır.

{
  /* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */  "rules": {
    ".read": true,
    ".write": true
  }
}

PHP ile Dizi İçerisinde Tüm String İfadeleri Büyük Çevirmek

Merhabalar,

PHP ile dizileri genellikle kullanıyorum. Özellikle de esnek olarak kullanılabilmesi birçok olanağı bize sunmaktadır.
Katı kurallar olmadan sonsuz elemanlı diziler oluşturabiliyoruz diyebiliriz.

Bir projede ihtiyaç olan dizi içerisindeki tüm string ifadelerin Türkçe karakter destekli olarak büyük harfe çevirme işlemi için ufak bir fonksiyon yazdım.
Beni kurtardı. Başkalarını da kurtarsın 🙂

function upper_string_arr( $arr )
{
foreach( $arr as $key => $value )
{
if( !is_array( $value ) )
{
$arr[ $key ] = mb_strtoupper( $value );
continue;
}
foreach( $value as $k => $v )
{
if( !$v || is_numeric( $v ) )
continue;
if( is_array( $v ) )
upper_string_arr( $v );
$arr[ $key ][ $k ] = mb_strtoupper( $v );
}
}
return $arr;
}

Fonksiyon recursive olarak ilerlemekte. İç içe olan dizileride büyültmektedir.