رفتن به مطلب

چند سوال در مورد php و تابع html_to_utf8


پست های پیشنهاد شده

سلام

چند سوال داشتم ممنون میشم راهنمایی کنید

من از اسکریپتی استفاده میکنم که برای قسمت descriptio در سایتم از کد


<meta name="description" content="<?= $DESC ?>">

استفاده میکنه

حالا مشکل اینه که گاهی اوقات در صفحه مطلب پیدا نمیشه و این قیمت خالی میشه یعنی به این شکل :


<meta name="description" content="">

حالا میخوام وقتی مطلب پیدا نشد اون قیمت خالی نباشه و از بین چند کلمه که من خودم میدم یکی رو به صورت راندوم در قسمت descriptio بزاره

از این استفاده کردم اما نشد :


<?php if ( $DESC =='') {
echo 'salam';
}
?>

مشکلش کجاست ؟

و سوال دوم :

همین مشکل را در قسمت خود مطلب دارم یعنی وقتی مطلب پیدا نمیشه قسمت متن مطلب خالی میمونه

برای نمایش قسمت مطلب از این کد استفاده میکنه


<h2><?= html_to_utf8($v[0]) ?></h2>
<p><?= html_to_utf8($v[1]) ?></p>

میخوام وقتی مطلبی یافت نشد همون کار بالارو انجام بده یعنی کلمه ای که خودم مینویسم رو نمایش بده

من تازه دارم با کد نویسی کار میکنم و تجربم کمه ببخشید اگر سوالای انقدر ساده میپرسم

تشکر

ویرایش شده توسط beh9am
لینک به ارسال

میتونین به صورت زیر عمل کنید


<meta name="description" content="<?php echo (empty($DESC)?'salam':$DESC) ?>">
برای اون 2 تای دیگه هم به صورت زیر عمل کنید
<h2><?= html_to_utf8((empty($v[0])?'hello':$v[0])) ?></h2>
<p><?= html_to_utf8((empty($v[1])?'hello':$v[1])) ?></p>

چرا نباید از =?> استفاده کرد؟ به خاطر اینکه سربار اضافی داره و در تعداد بازدیدهای بالا این امر مهم میشه

لینک به ارسال

میتونین به صورت زیر عمل کنید


<meta name="description" content="<?php echo (empty($DESC)?'salam':$DESC) ?>">
برای اون 2 تای دیگه هم به صورت زیر عمل کنید
<h2><?= html_to_utf8((empty($v[0])?'hello':$v[0])) ?></h2>
<p><?= html_to_utf8((empty($v[1])?'hello':$v[1])) ?></p>

چرا نباید از =?> استفاده کرد؟ به خاطر اینکه سربار اضافی داره و در تعداد بازدیدهای بالا این امر مهم میشه

تشکر استاد عزیز

ببخشید چجوریباید وقتی خالی بود میخوام از چند تا کلمه که دارم استفاده کنم مثلا:

مثتن اول

متن دوم

متن سوم

اینارو تو آرایه گذاشم

حالا میشه شرط رو جوری بگید که بشه جداگونه گذاشت ؟

یعنی

'hello' که شما گذاشتید را از یک متغیر دیگه بخونه یا چند تا متن به صورت رندوم که کداشو نوشتم خودم فقط شرط را جوری بزارید که بشه از جایدیگه متن فراخوانی کرد

در مورد =?> من ننوشتم خود اسکریپت اینطوریه

الان من همش رو به <?php تغییر بدم مشکلی نداره؟

لینک به ارسال

یه راه سادش

<?php
$arr = array('متن اول','متن دوم','متن سوم',);
?>
<meta name="description" content="<?php echo (empty($DESC)?$arr[0]:$DESC) ?>">
برای اون 2 تای دیگه هم به صورت زیر عمل کنید
<h2><?= html_to_utf8((empty($v[0])?$arr[1]:$v[0])) ?></h2>
<p><?= html_to_utf8((empty($v[1])?$arr[2]:$v[1])) ?></p>

لینک به ارسال

یه راه سادش

<?php
$arr = array('متن اول','متن دوم','متن سوم',);
?>
<meta name="description" content="<?php echo (empty($DESC)?$arr[0]:$DESC) ?>">
برای اون 2 تای دیگه هم به صورت زیر عمل کنید
<h2><?= html_to_utf8((empty($v[0])?$arr[1]:$v[0])) ?></h2>
<p><?= html_to_utf8((empty($v[1])?$arr[2]:$v[1])) ?></p>

تشکر کار کرد

فقط یک مشکلی هست که وقتی خالی میشه فقط از آرایه ها متن اول را میاره


<meta name="description" content="متن اول">

چجوری میشه کاری کرد که به صورت راندوم از آرایه ها انتخاب کنه مثلا یه بار متن اول یه بار متن سوم یه بار متن 7 یه بار متن 1 و ....

لینک به ارسال

<?php
$arr = array('متن اول','متن دوم','متن سوم',);
shuffle($arr);
?>
<meta name="description" content="<?php echo (empty($DESC)?$arr[0]:$DESC) ?>">

لینک به ارسال


<?php
$arr = array('متن اول','متن دوم','متن سوم',);
shuffle($arr);
?>
<meta name="description" content="<?php echo (empty($DESC)?$arr[0]:$DESC) ?>">

تشکر

میشه یک توضیحی بدید ؟

مثلا کدی که اضافه کردید چه کاری انجام میده ؟

کار همون تابع rand را انجام میده ؟

برای یادگیری میخوام

ممنون

ویرایش شده توسط beh9am
لینک به ارسال

من فقط یه تابع shuffle اضافه کردم که عناصر آرایه رو به هم می‎ریزه.

میدونید که هر عنصر در هر آرایه یه index داره


0 => 'Text one'
1 => 'Text two'
2 => 'Text three'

این تابع، ترتیب ایندکس و المنت‎ها رو عوض میکنه، مثلاً:


0 => 'Text three',
1 => 'Text one',
2 => 'Text two'

موفق باشید.

لینک به ارسال

من فقط یه تابع shuffle اضافه کردم که عناصر آرایه رو به هم می‎ریزه.

میدونید که هر عنصر در هر آرایه یه index داره


0 => 'Text one'
1 => 'Text two'
2 => 'Text three'

این تابع، ترتیب ایندکس و المنت‎ها رو عوض میکنه، مثلاً:


0 => 'Text three',
1 => 'Text one',
2 => 'Text two'

موفق باشید.

تشکر

یک سوال دیگه

الان برای این کدها :


<h2><?= html_to_utf8((empty($v[0])?$arr[1]:$v[0])) ?></h2>
<p><?= html_to_utf8((empty($v[1])?$arr[2]:$v[1])) ?></p>

چطور میشه کاری کرد وقتی شزط را چک میکنه اگر خالی بود php بسته بشه و یک سری کد بزاریم و دوباره ادامه کدها باشه ؟

من میخوام توی این کد به جای


$arr[1]

و

$arr[2]

از این حلقه استفاده بکنم :


for ($i=0; $i <= 3 ; $i++) {
echo $nums[$i].'<br>'.PHP_EOL;
}

چجوری میشه جایگذاری کنم؟

تشکر

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...