دوشنبه ۲۶ شهریور ۱۴۰۳

Monday, September 16, 2024 GMT +3:30

نمایش قسمتی از متن و پاراگراف با PHP

php-limit-word

انتخاب و نمایش قسمتی از متن و پاراگراف یکی از نیازهایی است که معمولا در طراحی امکانات صفحات وب کاربردهای زیادی دارد، به طور مثال برای ایجاد قابلیت پیش نمایش محتوای دریافت شده از پرس و جوهای دیتابیس، نمایش خلاصه متن و پاراگراف در فرم های وب، نمایش قسمتی از نتیجه در هنگام جستجو در مطالب سایت، محدود کردن نمایش محتوای در اختیار کاربران با سطح دسترسی های متفاوت و موارد مشابه دیگری این امکان مورد استفاده قرار می گیرد، خوشبختانه نمایش قسمتی از متن و پاراگراف بسته به شرایط و نیاز طراح سایت به چند شیوه مختلف چه از طریق برنامه نویسی PHP یا در هنگام اجرای پرس و جوهای دیتابیس با دستورات و توابع درونی MySQL قابل انجام است که در این آموزش در حد امکان به تفصیل هر کدام از این روش ها را بررسی می کنیم.

نمایش قسمتی از متن به صورت شمارش کلمه


یکی از روش های نمایش قسمتی از متن یا پاراگراف تعیین تعداد و میزان کلماتی است که قصد داریم در خروجی نمایش داده شوند، برای انجام این کار در PHP می توانیم از ترکیب سه تابع explode ، implode و array_splice استفاده کنیم که در نمونه کد زیر این سه تابع را در بدنه یک تابع و به ترتیب تعریف کرده ایم:
<?php
function limitWord($string, $limit){
    $words = explode(" ", $string);
    $output = implode(" ", array_splice($words, 0, $limit));
    return $output;
}
?>
برای فراخوانی تابع کافی است پاراگراف مورد نظر را در یک متغیر تعریف و متغیر را (به عنوان آرگیومنت اول) به همراه تعداد کلمات مورد نظر (به عنوان آرگیومنت دوم) و به صورت زیر فراخوانی کنیم:
<?php
$string = "آموزش کاربردی پی اچ پی نمایش قسمتی از متن و پاراگراف";
echo limitWord($string, 5);
?>
به این صورت با اجرای کدهای PHP در خروجی صفحه تنها 5 کلمه اول از مقادیر متغیر فرضی string را خواهیم داشت.
آموزش کاربردی پی اچ پی
توضیح:
- تابع explode با دریافت یک مقدار به عنوان جداکننده (در اینجا فضای خالی یا " ") از آرگیومنت اول، متن مورد نظر را که در آرگیومنت دوم تنظیم شده به صورت آرایه ای از کلمات تبدیل می کند (String to Array).
- در قسمت بعدی برنامه تابع implode مجددا عناصر آرایه را به رشته متنی تبدیل می کند (Array to String)، البته در اینجا استفاده از array_splice باعث می شود که تنها تعداد کلمات محدودی از متن مورد نظر به خروجی ارسال شوند که این تعداد در متغیر limit (آرگیومنت دوم) مشخص شده است.
نکته: برای محاسبه تعداد کلمات موجود در آرایه می توانیم از تابع sizeof یا count هم در PHP استفاده کنیم که ممکن است برای توسعه کد در شرایط متفاوت مورد نیاز باشد:
<?php
$string = "آموزش کاربردی پی اچ پی نمایش قسمتی از متن و پاراگراف";
$words = explode(" ", $string);
echo sizeof($words);
echo '<br>';
echo count($words);
?>
خروجی دستورات بالا به صورت زیر است:
11
11
به این شیوه می توانیم برنامه هوشمندتری داشته باشیم به فرض تنها اگر تعداد کلمات یک متن از مقادیر مورد نظرمان بیشتر بود قسمت array_splice اجرا شود و یا ایده های متنوع دیگری که ممکن است به ذهن برنامه نویس برسد.

نمایش قسمتی از متن به صورت شمارش حروف  


روش دیگر برای انتخاب و نمایش قسمتی از متن و پاراگراف، شمارش حروفی است که تمایل داریم به همان تعداد به خروجی ارسال شوند، برای انجام این کار می توانیم از تابع substr و برای حروف فارسی از mb_subsrt استفاده کنیم، به طور مثال در کد زیر تعداد 22 حرف اول از نمونه متنی که قبلا بررسی کردیم را با این روش استخراج کرده و به خروجی می فرستیم:
<?php
$string = "آموزش کاربردی پی اچ پی نمایش قسمتی از متن و پاراگراف";
echo mb_substr($string, 0, 22, mb_detect_encoding($string));
?>
خروجی نمونه کد بالا به صورت زیر خواهد بود:
آموزش کاربردی پی اچ پی
در حال حاضر تابع substr تنها از استاندارد ASCII پشتیبانی می کند و برای کلمات فارسی که از استاندارد UTF-8 پیروی می کنند چندان کاربردی نیست چون هر حرف فارسی در تابع substr دو کاراکتر (Multibyte) حساب شده و به همین دلیل گاهی مواقع خروجی ناقص و غیر استاندارد در انتهای متن مورد نظر چاپ می شود، به فرض:
آموزش کاربر�
همان طور که گفتیم این موضوع مربوط به ساز و کار یونیکد زبان فارسی است که هر حرف متشکل از دو بایت است اما تابع substr حروف را بر اساس شمارش هر بایت تجزیه می کند و این منجر به بروز مشکل می شود، برای رفع مشکل بهتر است از تابع mb_substr و mb_detect_encoding مطابق با نمونه بالا استفاده کنیم.

نمایش قسمتی از متن و پاراگراف در MySQL


علاوه بر روش های بالا که صرفا متکی بر دستورات و توابع زبان برنامه نویسی PHP هستند، در سیستم مدیریت پایگاه داده MySQL و به هنگام اجرای پرس و جو (Query) نیز این امکان وجود دارد که بتوانیم نتایج را به تعداد حروف یا کلمات خاصی محدود کنیم، در ادامه با دو تابع SUBSTRING و SUBSTRING_INDEX آشنا خواهیم شد.

شمارش حروف با تابع SUBSTRING در MySQL


مانند آنچه در مورد برنامه نویسی کدهای PHP گفتیم در MySQL هم به دو روش شمارش حروف و شمارش کلمه می توانیم تعداد کاراکترها یا عبارات خروجی را به عدد خاصی محدود کنیم، برای شمارش حروف از تابع SUBSTRING به شکل نمونه زیر استفاده می کنیم:
mysqli_query($conn, "SELECT id, SUBSTRING(col_name, 1, 30) AS col_name FROM tbl_name ORDER BY id DESC LIMIT 1");
در مثال بالا با استفاده از تابع درونی SUBSTRING در MySQL از جدول فرضی tbl_name، ستون col_name کاراکترهای 1 تا 30 را انتخاب کرده ایم، البته این تابع نیز نسبت به حروف فارسی در مقایسه با حروف انگلیسی رفتاری متفاوت دارد و روشی که در ادامه خواهیم گفت برای زبان فارسی مناسبتر است.

شمارش کلمه با تابع SUBSTRING_INDEX در MySQL


در اغلب مواقع صرف شمارش حروف ایدآل نیست و معمولا کاراکترهای ناقص یا اضافه در خروجی خواهیم داشت، طراحان و برنامه نویسان وب عموما به دنبال راه حلی جهت شماره کلمه به کلمه هستند که برای این منظور در MySQL تابع SUBSTRING_INDEX به شکل نمونه زیر قابل استفاده است:
mysqli_query($conn, "SELECT id, SUBSTRING_INDEX(col_name, ' ', 30) AS col_name FROM tbl_name ORDER BY id DESC LIMIT 1");
در مثال بالا با استفاده از تابع درونی SUBSTRING_INDEX در MySQL از جدول فرضی tbl_name، ستون col_name تعداد 30 کلمه اول را انتخاب کرده ایم، خوشبختانه این روش با حروف فارسی سازگار است چون مبنای کار تابع بررسی فضای خالی (' ' در آرگیومنت دوم) بین کلمات است.
دسته بندی: آموزش کاربردی » PHP
related مطالب بیشتر:
ارسال ایمیل با PHP و کلاس PHPMailer
آموزش ساخت نقشه XML سایت (Sitemap) با PHP و MySQL
نمایش آمار بازدیدها با PHP بدون استفاده از دیتابیس
نحوه نمایش متن و تصاویر اتفاقی در PHP و MySQL
ساخت منوی هوشمند با PHP و CSS
دیدگاه
more ۱۲۹ دیدگاه برای این مطلب ارسال شده است.
more دیدگاه جدید بر اساس تاریخ ارسال در انتهای دیدگاه های موجود نمایش داده می شود.
سیدعباسی
۱۶:۵۹ ۱۴۰۳/۰۴/۲۴
سلام
من دو روز پیش یه کد براتون فرستادم واسه ارسال متن به تلگرام
اونو درست کردم فقط این کد ازش می خوام متن که می فرستم باهاش عکس هم ارسال کنم کدی که الان میذارم واسه رباته خودمه که درسته و api هم درسته هرکاری می کنم ارور میده و نمی فرسته ممنون میشم بررسی و کمک کنید مشکل چیه
<?php
// Replace 'YOUR_BOT_TOKEN' with your actual bot token
$bot_token = 'YOUR_BOT_TOKEN';
$chat_id = '@your_channel_name'; // Replace with your channel username;

// Replace with the path to the picture you want to send
$image_path = 'https://example.com/image.jpg';
$text = 'Hello from your bot!'; // Replace with the text you want to send

// Set up cURL to make a POST request to the Telegram Bot API
$curl = curl_init("https://api.telegram.org/bot$bot_token/sendPhoto");

// Set POST data including the photo file and text
$post_fields = [
'chat_id' => $chat_id,
'photo' => new CURLFile(realpath($image_path)),
'caption' => $text
];
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_fields);

// Execute cURL request
$result = curl_exec($curl);

// Close cURL session
curl_close($curl);

// Check for errors
if ($result === false) {
echo 'Error sending picture and text: ' . curl_error($curl);
} else {
echo 'Picture and text sent successfully!';
}

?>
خیلی ممنون
با new CURLFile نمی توانیم آدرس فایل در سرورهای دیگر را فراخوانی و دریافت کنیم، برای این کلاس باید فایل روی سرور خودمان باشد به فرض:
$image_path = '/images/image.jpg';
که یعنی فایل تصویر در فولدر images در کنار فایل اصلی ربات قرار دارد، در صورت نیاز به استفاده از فایل های آنلاین وب باید ابتدا آنها را دریافت و ذخیره سازی کنیم، به فرض:
$img_url = 'https://example.com/image.jpg';
$image_path = '/images/image.jpg';
file_put_contents($image_path, file_get_contents($img_url));
نکته: موارد شخصی از کدهای شما حذف شدند.
سیدعباسی
۰۱:۱۴ ۱۴۰۳/۰۴/۲۵
با تشکر از شما متوجه شدم
با این کد چطوری میتونم عکس یک مطلب رو دربیارم و لینکش رو جدا کنم؟
<?php
// URL of the website post
$url = 'mysite.com';

// Create a DOM object
$html = file_get_contents($url);

// Find the image element in the DOM
$image = $html->find('img', 0);

// Get the source attribute of the image
$imageUrl = $image->src;

echo $imageUrl;
?>
روی کد ارسال موفق شدم عکس رو با لینک ارسال کنم ولی الان نیاز دارم عکس یک مطلب رو دربیارم بعد همون رو بدم به تابع قبلی که بعنوان لینک برام ارسال کنه! الان فقط مشکل باقی مانده ام اینکه لینک عکس یک مطلب رو استخراج کنم با این کدی که الان نوشتم نتونستم اینکارو بکنم چون به تابع find گیر داد و ارور میده
سپاس
ظاهرا کد شما از یک کلاس خارجی استفاده می کند که فایل آن در دسترس نیست و در صفحه include نشده، با روش جایگزین می توانید بدون استفاده از کلاس تصویر را استخراج کنید:
<?php
//URL of the website post
$url = 'http://example.com';

//create a DOM object
$html = file_get_contents($url);

$doc = new DOMDocument();
$doc->loadHTML($html);
$images = $doc->getElementsByTagName('img');
if ($images->length > 0) {
$first_img = $images->item(0);
$image_url = $first_img->getAttribute("src");
}

echo $image_url;
?>
سیدعباسی
۰۵:۰۱ ۱۴۰۳/۰۴/۲۵
ببخشید برای سوال و کد قبلی که براتون نوشتم میخوام با کد قبلی یک لینک رو بررسی کنم بعد عکسهای اون مطلب رو پیدا کنم اگه عکس jpg و یا png بود یکی رو فقط باهاش انتخاب کنم اگه عکس انتخابی با این فرمت بود یکی رو انتخاب کنم اگه با این فرمت ها نبود لینک یه عکس پیشفرض رو بذارم اگه توی عکسها ۱۰ تا عکس رو پیدا کرد فقط یکی رو میخوام با این دو فرمت چون فقط میخوام یه عکس واسه تلگرام ارسال کنم همه ی عکسهایی که توی متن پیدا می کنه رو بررسی کنه و با همین دو تا فرمت فقط یکی رو انتخاب کنه و فرقی نمی کنه کدوم باشه ولی اگه عکس عکسی رو پیدا نکرد پیشفرض بذارم
با تشکر
برای تنظیم تصویر پیش فرض در صورت پیدا نشدن هیچ تصویری می تواند کد را به صورت زیر توسعه دهید:
if ($images->length > 0) {
} else {
$image_url = 'http://example.com/image/default.jpg';
}
سیدعباسی
۰۶:۰۴ ۱۴۰۳/۰۴/۲۶
با تشکر از شما
خیلی ممنون مشکلم درست شد فقط یه مشکل دارم چطوری می تونم با php متنی که می نویسم یه قسمت رو نقل قول کنم واسه تلگرام parse_mode رو روی html قرار دادمدواسه همه تگ ها درست عمل می کنه ولی quote رو نمی دونم چیکارش کنم همه نت رو هم زیر رو کردم و چیزی به دست نیاوردم میخوام وقتی با php متن ارسال می کنم یه جایی رو quote کنم استایل خود تلگرام که داخل کادر رنگی هست
با تشکر
ظاهرا متد مستقیمی برای ایجاد نقل قول با ربات هنوز در API تلگرام معرفی نشده است، به عنوان روش جایگزین این راه حل را بررسی کنید:
stackoverflow.com/questions/77426193/how-to-mark-part-of-a-text-as-quoted-in-telegram-sendmessage-bot-api
این روش را تست نکرده ایم.
سیدعباسی
۱۶:۰۶ ۱۴۰۳/۰۴/۲۷
با سلام و تشکر از شما
با توجه به بررسی هایی که انجام دادم استفاده از تگ ها بیشتر در متد sendMessage صورت می گیرد و وقتی از متد sendPhoto استفاده می کنیم تعدادی از تگ ها عمل نمی کنن مثلا blockquote و link preview واسه لینک های سایت
کدها اینا هستن:
$apiUrl = "https://api.telegram.org/bot{$botToken}/sendMessage";
$message = strip_tags("این پیام تست است"."<blockquote>این پیام تست دوم هست!</blockquote>"."\n\n"."https://mysite.com");
$params = [
'chat_id' => $chatId,
'text' => $message,
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if(curl_error($ch)) {
echo 'Error: ' . curl_error($ch);
}
curl_close($ch);

$_text = strip_tags("این پیام تست است"."<blockquote>این پیام تست دوم هست!</blockquote>"."\n\n"."https://mysite.com");

$image_url = 'http://example.com/image.jpg';
$params = [
'chat_id' => $chatId,
'photo' => $image_url,
'caption' => $_text,
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if(curl_error($ch)) {
echo 'Error: ' . curl_error($ch);
}
curl_close($ch);
وقتی متن پیام رو با sendMessage می فرستم تگ ها عمل می کنن ولی وقتی متن پیام رو همرا با عکس با sendPhoto می فرستم تگ هایی که گفتم عمل نمی کنن انگار واسه متد sendPost براشون تعریف نشده الان میشه یه کاری کرد که وقتی متن و عکس رو با هم واسه یه پست می فرستم متن و با متد sendMessage و عکس رو با متد sendPhoto ارسال کرد؟ و یا جوری که بشه تگها توی متد sendPhoto هم عمل کنن
با تشکر از لطف و محبت شما
تا جایی که اطلاع داریم با 2 متد نمی توانیم برای یک مطلب محتوا بفرستیم، طبق بررسی API تلگرام هم شاید اگر پارامتر
parse_mode: 'HTML'
را به متد sendPhoto اضافه کنیم امکان استفاده از برخی تگ های HTML ممکن شود که باید تست کرد.
سیدعباسی
۰۵:۳۹ ۱۴۰۳/۰۵/۰۱
با سلام
این کد رو چند روز پیش برام فرستادید و کارم رو راه انداخت
$url = 'http://example.com';

//create a DOM object
$html = file_get_contents($url);

$doc = new DOMDocument();
$doc->loadHTML($html);
$images = $doc->getElementsByTagName('img');
if ($images->length > 0) {
$first_img = $images->item(0);
$image_url = $first_img->getAttribute("src");
}

echo $image_url;
?>
با این میشه عکس ها رو استخراج کرد حالا چطوری میشه متن رو استخراج کرد؟ مثلا متن داخل یک تگ و یا الگو باشه! مثلا توی یک صفحه کامل که لود میشه میخوام بین الگوهایی که لازم دارم متن رو استخراج کنم
با تشکر
برای استخراج محتوای متنی تگ های HTML می توانیم DomXpath را به DomDocument اضافه کنیم، برای بررسی نحوه استفاده و نمونه کدها لطفا در وب جستجو کنید، چند نمونه:
https://www.php.net/manual/en/class.domxpath.php

https://gist.github.com/jmoz/2996220
سیدعباسی
۱۴:۰۷ ۱۴۰۳/۰۵/۰۳
با سلام
من مشکل قبلیم رو که گفتم ارور میده رو حل کردم مشکل بعدیم اینکه با استفاده از این کد
     $doc = str_get_html(get_web_page("https://t.me/s/tapspal"));
$message = $doc->find('.tgme_widget_message_wrap .tgme_widget_message_text', -2)->innertext; // plaintext
متن آخرین مطلب کانالم رو درمیارم الان اگه عکس ضمیمه پست باشه اونو ضمیمه نمی کنه من می خوام آدرس عکس رو هم دربیارم و اونم بفرستم و اگه عکس هم توی متن نبودی یه عکس پیشفرض براش بذارم مثل چند پیام قبلی که براتون ارسال کردم و جوابم رو دادید بعد با متد sendPhoto بفرستم واسه تلگرام چون این متد اگه عکس نداشته باشه متن رو به تنهایی ارسال نمی کنه! تگ عکس داخل این سورس هست
<div class="tgme_widget_message_author accent_color"><a class="tgme_widget_message_owner_name" href="https://t.me/tapspal"><span dir="auto">BitPaL</span></a></div>
<a class="tgme_widget_message_photo_wrap blured 5960593435327053955 1387808806_456245379" href="https://t.me/tapspal/3" style="width:360px; background-image:url('https://cdn4.cdn-telegram.org/file/EWMC2LfVThXwfk4ZxDjE9XjCdfwUuTaofucxy9FC1JaDTS_XlS5RTOitHRZbSd3HDwZuWt9_GDc-fDf-YW9eSuaVleDnKEuqY8_-CNVIvUaiAzZTCSV_FrSoCaJeBW9r_f_E-1WpYSftOy9cK28BU-84LqaX6Muy9Qnv2dBVA-FaWfhIVYtzLcUBw92aShVQMRWqgoptCfky-g3fHsjcN6it70rFyhLyMaY3ZGMjQVL553Y8I4qFBH-uhVe3MiTzj-RqmVnv3KkPL_DT_qYRcWobdOOS0SeH9N1oqHSAWEbYnmegBSf6eTNoojiVQfT0RIPxZ_Ls3zSuxLpAnVmYjQ.jpg')">
<div class="tgme_widget_message_photo" style="width:60%; padding-top:133.33333333333%"></div>
</a>
<div class="tgme_widget_message_text js-message_text" dir="auto"></div>
با تشکر فراوان
اگر الگوی خروجی متغیر message ثابت باشد با نمونه کد زیر می توانید آدرس تصویر را استخراج کنید:
preg_match('/background\-image:url\(\'([^\)]+)\'\)\"/i', $messge, $match);
$img_url = $match[1];

if(!strlen($img_url) > 0){
$img_url = 'http://example.com/default.jpg';
}
بخش آخر کد مربوط به تنظیم تصویر پیش فرض است.
سیدعباسی
۰۲:۱۷ ۱۴۰۳/۰۵/۰۵
با تشکر از شما
مشکلم اینکه چطوری عکس پست آخر رو بدست بیارم و بعد با الگوی که اونو نوشتید استخراجش کنم
سورس این کانال رو نگاه کنید:
https://t.me/s/tapspal
همونطوری که گفتم متن آخرین پست رو با این تابع درمیارم
$doc = str_get_html(get_web_page("https://t.me/s/tapspal"));
$message = $doc->find('.tgme_widget_message_wrap .tgme_widget_message_text', -1)->innertext; // plaintext
الان متن رو بصورت خروجی دارم. بعد باید یه تابع این شکلی داشته باشم که عکس آخر رو هم از تگ دربیارم مشکلم بزرگم با تابع پیدا کردن تگ های عکس آخره! بعد با الگویی که برام نوشتید لینکش رو بدست بیارم همه کارهای رباتم انجام دادم فقط واسه عکس مشکل دارم چون عکس داخل تگ هست و برام سخته با یه تابع اون تگ هارو جدا کنم چون وقتی تابع رو اضافه می کنم متن رو درمیاره و مسیر عکس رو و تگ عکس رو بهم نمیده
ببخشید مزاحم شما هم شدم
شرمنده
به نظر با preg_match_all بتوانید تمام عکس ها را در قالب آرایه استخراج و سپس آخرین عکس را به عنوان تصویر آخر در کدهایتان استفاده کنید، برای نمونه:
<?php
$messge = file_get_contents('tapspal.txt');
preg_match_all('/background\-image:url\(\'([^\)]+)\'\)\"/i', $messge, $img_url);
//print_r($img_url);
end($img_url[1]);
$img_key = key($img_url[1]);
echo $img_url[1][$img_key];
?>
در صورت نیاز به راهنمایی بیشتر لطفا نمونه سورس خروجی کانال را در قالب فایل txt به آدرس ایمیل ما (موجود در بخش تماس) ارسال و نتیجه را از همان طریق پیگیری کنید.
سیدعباسی
۰۳:۲۷ ۱۴۰۳/۰۵/۰۶
با سلام
ببخشید یه سوال دیگه هم دارم من با این تابع فقط یه دونه کانال رو می تونم خروجی بگیرم
<?php
$_ = ['ch1','ch2'];

function get_web_page($url)
{
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => "spider", // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 5, // timeout on connect
CURLOPT_TIMEOUT => 5, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
);

$ch = curl_init($url);
curl_setopt_array($ch, $options);
$content = curl_exec($ch);
curl_close($ch);

return $content;
}

$doc = str_get_html(get_web_page("https://t.me/s/$_"));
$message = $doc->find('.tgme_widget_message_wrap .tgme_widget_message_text', -1)->innertext; // plaintext
?>
میخوام توی آرایه چند تا کانال بذارم و وقتی کانال اول خروجی بهم داد بره واسه کانال دوم و خروجی اونم بهم بده و تا زمانی که کانال وجود داشته باشه به کار خودش ادامه بده و واسه هر کانال خروجی همون رو بهم بده
با تشکر فراوان
در حالت کلی با نمونه کد زیر می شود دور تکرار ایجاد کرد:
$var = ['ch1','ch2'];
$loop = count($var);
for($i = 0; $i < $loop; $i++){
$doc = str_get_html(get_web_page("https://t.me/s/$var[$i]"));
$message = $doc->find('.tgme_widget_message_wrap .tgme_widget_message_text', -1)->innertext;
}
اما برای نوشتن کدهای کاربردی بهتر است با جزئیات توابع و عملکرد دقیق دستورات PHP آشنا باشید تا مشکلات پیش بینی نشده بعدی ایجاد نشود.
more لطفا پیش از ارسال دیدگاه نکات زیر را مد نظر داشته باشید:
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.



 refresh
10 × 10
6 × 1
20 × 20
=
آخرین دیدگاه ها
more برای دسترسی سریع به یادداشت مربوطه می توانید از لینک مطلب در کادر زیر استفاده کنید.
مجتبی
سلام وقت بخیر میخوام یک روز به تاریخ دریافتی اضافه شه ممنون میشم راهنمایی کنید
۱۴۰۳/۰۶/۲۰

پرتو
سلام خوبید؟ خسته نباشیذ ببخشید مزاحم شدم می خواستم بگم من به شما ایمیل زدم ولی هنوز شما جواب ندادین می تونم بپرسم چرا سوال...
۱۴۰۳/۰۶/۱۵

سیدعباسی
با سلام ببخشید یه سوال دیگه هم دارم من با این تابع فقط یه دونه کانال رو می تونم خروجی بگیرم میخوام توی...
۱۴۰۳/۰۵/۰۶

سیدعباسی
با تشکر از شما مشکلم اینکه چطوری عکس پست آخر رو بدست بیارم و بعد با الگوی که اونو نوشتید استخراجش کنم سورس...
۱۴۰۳/۰۵/۰۵

سیدعباسی
با سلام من مشکل قبلیم رو که گفتم ارور میده رو حل کردم مشکل بعدیم اینکه با استفاده از این کد با تشکر...
۱۴۰۳/۰۵/۰۳

سیدعباسی
با سلام این کد رو چند روز پیش برام فرستادید و کارم رو راه انداخت با این میشه عکس ها رو استخراج کرد...
۱۴۰۳/۰۵/۰۱

پرتو
سلام جناب خوبید؟ چیزی شده جواب نمیدین؟ آخه من ایمیل دادمممم ممنون میشم چک کنید لطفا
۱۴۰۳/۰۴/۳۱
  در انتظار بررسی: ۰
 پاسخگویی به سوالات ممکن است تا ۲۴ ساعت زمان ببرد.