Tip Code
78 subscribers
13 photos
2 videos
4 links
تیپ هایی (Tip) از زبان های برنامه نویسی، فریمورک‌ها، پلتفرم‌ها، IDEs و ...

اکانت ما روی توئیتر:
Twitter.com/TipCode_ir
Download Telegram
بدست آوردن نوع فایل تصویر (MIME Type) در #PHP

function getImageType($imageFile)
{
$info = getimagesize($imageFile);
return $info['mime'];
}

getImageType('a.png');
// Output: 'image/png'

#بک‌اند #image #کار_با_تصاویر #MIME_TYPE #سطح_متوسط
👍1
نحوه استفاده از مقادیر enum بصورت بیتی در #c_sharp
[Flags]
enum Colors
{
Red = 2,
Green = 4,
Blue = 8,
Black = 16
}

قطعه کد پایین، رشته "Red Green Blue" را چاپ می کند. در صورتی که [Flags] از کد حذف شود عدد 14 چاپ می شود.

int Purple = 14;
Console.WriteLine((Colors)Purple);


#سطح_متوسط
غیرفعال کردن راست کلیک در صفحه با #jQuery

$(document).ready(function(){
$(document).bind("contextmenu", function(e){
return false;
});
});

#فرانت‌اند #javascript #سطح_مبتدی
الحاق دو آرایه با استفاده از Spread Syntax در #javascript

let firstArray = [1, 2],
secondArray = [3, 4];

[...thirdArray] = [...firstArray, ...secondArray];

console.log(thirdArray); // [1, 2, 3, 4]


#spread_syntax #سطح_متوسط
👍1
سه نقطه گذاشتن در آخر متن‌ها طولانی با #CSS
این کلاس را به هر المنتی در صفحه بدهید، در صورتی که متن آن بیشتر از یک خط باشد و داخل آن جا نشود، در انتهای متن سه نقطه ... قرار میدهد

.text-ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}

#فرانت‌اند #javascript #سطح_مبتدی
👍1
در #javascript برای مقدار دهی پیش فرض به یک متغیر در صورتی که property با همون نام روی object تعریف نشده باشه

let node = {
name: "foo",
parent: { }
};
let {parent:{name:parentName='bar'}}= node;

console.log(parentName); // bar

#سطح_متوسط
روش تشخیص اینکه کاربر از #HTTP یا #HTTPS استفاده میکند، در #PHP

if (!empty($_SERVER['HTTPS'])
&& $_SERVER['HTTPS'] !== 'off'
|| $_SERVER['SERVER_PORT'] == 443) {
// HTTPS
} else {
// HTTP
}

#بک‌اند #سطح_مبتدی
بازگرداندن چند مقدار از یک متد در #c_sharp با استفاده از Tuple

public Tuple<int, int> MultipleValue()
{
return Tuple.Create(1,2);
}

#سطح_پیشرفته
بعضی کدهای #CSS سرعت اجرای بالاتری نسبت به مشابه آنها دارد. به عنوان مثال کد زیر:
.cls1 > .cls2 > .cls3 {
...
}
سرعت اجرای بالاتری نسب به کد زیر دارد:
.cls1 .cls2 .cls3 {
...
}

#فرانت‌اند #performance #سطح_مبتدی
خواندن مقادیر آرایه ها و حذف آنها در یک زمان بدون استفاده از حلقه for در #javascript

let colors = ['first', 'second', 'third'];

while ( ( [item,...colors ] = colors ).length ) {
console.log(item);
}


#spread_syntax #سطح_متوسط
اعتبار سنجی مقادیر داخل متغییرها در #PHP
استفاده از تابع filter_var

مثال: چک میکند که داده ورودی از نوع عددی است یا خیر:
if (filter_var(10, FILTER_VALIDATE_BOOLEAN)) 
{ ... }

مثال: چک میکند که داده ورودی یک آدرس ایمیل معتبر میباشد یا خیر:
if (filter_var('info@gmail.com', FILTER_VALIDATE_EMAIL)) 
{ ... }
#بک‌اند #سطح_مبتدی
در #react برای استفاده از شرط ها در #JSX می تونید از do expression که به تازگی در ECMAScript اضافه شده استفاده کنید. این ویژگی هنوز در stage-1 هست و در حال حاضر فقط در صورتی که از یک transpiler (مثل babel) استفاده می کنید قابل اجراست.

const aComponent = () => {
return (
<div>
{
do => {
if (condition && condition2 && !consition3) {
if (consition4) {
<p>foo</p>
} else if (condition5) {
<p>bar</p>
} else {
<p>baz</p>
}
} else {
<p>qux</p>
}
}
}
</div>
)
};

#سطح_پیشرفته
‏تفاوت while و do while به زبان خیلی ساده
#طنز
در #Javascript از این راه برای کوتاه کردن کد بدون نوشتن صفرهای متوالی در اعدا استفاده کنید
for (let i = 0; i < 1e7; i++) { ... }

تمام این موارد true برمی گردونه
1e0 === 1;
1e7 === 10000000;
2e1 === 20;
2e2 === 200;
#سطح_متوسط
کپی گرفتن از یک جدول در #SQL
توسط دستور زیر میتوانید، ساختار یک جدول را کپی کرده و یک جدول جدید مانند جدول قبل خواهید داشت.

-- Copy structure and data
SELECT * INTO NewTbl FROM Tbl1

-- Copy structure only
SELECT * INTO Tbl1_Copy FROM Tbl1 WHERE 1=0

-- Copy structure only
SELECT TOP(0) * INTO Tbl1_Copy FROM Tbl1

#بانک_اطلاعاتی #mssql #سطح_مبتدی
در #javascript از نحوه دستوری Destructuring assignment برای ذخیره مقادیر ایندکس های موردنظر از یک آرایه در چند متغیر طی یک دستور استفاده کنید:


let colors =
['red', 'green', 'blue', 'black', 'purple'];

const [ , , thirdColor, , fifthColor] = colors;

console.log(thirdColor); // blue
console.log(fifthColor); // purple



#destructuring_assignment #سطح_متوسط
👍1
تبدیل آرایه به CSV در #PHP

function array2csv($input, $delimiter = ',', $enclosure = '"')
{
$fp = fopen('php://temp', 'r+');
fputcsv($fp, $input, $delimiter, $enclosure);
rewind($fp);
$data = fread($fp, 1048576);
fclose($fp);
return rtrim($data, "\n");
}

#بک‌اند #آرایه #CSV #سطح_پیشرفته
در #Javascript برای پیداکردن بیشترین مقدار در یک آرایه لازم نیست حتما از حلقه استفاده کنید. فقط آرایه رو با استفاده از spread operator ها به تابع ()Math.max پاس بدید:


let values = [1, 999, 2];
Math.max(...values);

می تونید اعداد دیگه رو هم برای مقایسه با مقادیر آرایه اضافه کنید

Math.max(...values, 1000, 998);


یکی از کاربردهای این ترفند می تونه تعیین مقدار پیش فرض برای متغیرها باشه. در این مثال اگر عدد مثبت پیدا نشد مقدار پیش فرض صفر داده میشه

let negatives = [-123, -456, -789];
const aValue = Math.max(...negatives, 0);


#سطح_متوسط #spread_syntax
👍1
در #CSS با این روش میتوانید هر جایی از صفحه را کاری کنید که با ماوس قابل انتخاب کردن نباشد:

.no-select {
-moz-user-select: -moz-none;
-moz-user-select: none;
-o-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
}
#فرانت‌اند #سطح_متوسط
👍1
تابع ()setState در #react بصورت ناهمگام (asynchronous) اجرا می شود و باعث مشکلاتی می شود بعنوان مثال:

this.setState({count: this.state.count + 1});
this.setState({count: this.state.count + 1});
this.setState({count: this.state.count + 1});
// this.state.count === 1, not 3


برای حل این مشکل یک تابع به ()setState پاس بدید:

this.setState(prevState => ({ count: prevState.count + 1 }));

#سطح_متوسط
تبدیل اعداد فارسی به انگلیسی در #javascript

const digits = '۰۱۲۳۴۵۶۷۸۹';
digits.replace(/[\u0660-\u0669\u06f0-\u06f9]/g,
function(c) {
return c.charCodeAt(0) & 0xf;
});

#کار_با_اعداد #سطح_متوسط
1