2 پاسخ

خواندن title یک صفحه با php.

در php چجور میتونم title یک صفحه را بخوانم؟


ثبت پرسش جدید
سجاد مومنی
@sajadspeed 2 سال پیش مطرح شد
0

سلام ببینید شما مستقیما در PHP به صورت runtime به دام یا کلا هرچیزی سمت کلاینت دسترسی ندارید پس یه جورایی باید همون وسط اسکریپت دوباره بیاید بر اساس اون اسکریپت بخونید. این توضیحی که دادم متوجه نشدید هم مشکلی نداره فقط از کد پایین استفاده کنید:

function page_title($url) {
        $fp = file_get_contents($url);
        if (!$fp) 
            return null;

        $res = preg_match("/<title>(.*)<\/title>/siU", $fp, $title_matches);
        if (!$res) 
            return null; 

        // Clean up title: remove EOL's and excessive whitespace.
        $title = preg_replace('/\s+/', ' ', $title_matches[1]);
        $title = trim($title);
        return $title;
    }

الان شما فقط آدرس صفحه را بده به این تابع خودش title برات برمیگردونه، حالا میتونید آدرس صفحه فعلی با آرایه سرور بهش پاس بدید مثل شکل زیر:

$url =  "//{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";

و در آخر برای توضیح این تابع باید عرض کنم که محتویات صفحه را میگیره و با regex پارس میکنه، تگ title توش پیدا میکنه و محتویاتش نشون میده، اگه واقعا نیاز ندارید به این مورد استفاده نکنید چون بار پردازشی تقریبا زیادی میتونه داشته باشه، معمولا title باید از سمت بک‌اند ساخته بشه نه سمت فرانت، یکبار دیگه منطق و معماری اسکریپتی که دارید مینویسید را مرور کنید.


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 2 سال پیش مطرح شد
0

سلام
اونطور که فهمیدم شما میخواهید یک خزنده درست کنید که مثلا آدرس example.com رو بگیره و title اون رو برگرودنه .
برای این مورد میتونید از https://backendbaz.ir/%D8%B3%D8%A7%D8%AE%D8%AA-%D8%AE%D8%B2%D9%86%D8%AF%D9%87-%D9%88%D8%A8-%D8%A8%D8%A7-php/ استفاده کنید .


سجاد مومنی
@sajadspeed 2 سال پیش مطرح شد
0

سلام ببینید شما مستقیما در PHP به صورت runtime به دام یا کلا هرچیزی سمت کلاینت دسترسی ندارید پس یه جورایی باید همون وسط اسکریپت دوباره بیاید بر اساس اون اسکریپت بخونید. این توضیحی که دادم متوجه نشدید هم مشکلی نداره فقط از کد پایین استفاده کنید:

function page_title($url) {
        $fp = file_get_contents($url);
        if (!$fp) 
            return null;

        $res = preg_match("/<title>(.*)<\/title>/siU", $fp, $title_matches);
        if (!$res) 
            return null; 

        // Clean up title: remove EOL's and excessive whitespace.
        $title = preg_replace('/\s+/', ' ', $title_matches[1]);
        $title = trim($title);
        return $title;
    }

الان شما فقط آدرس صفحه را بده به این تابع خودش title برات برمیگردونه، حالا میتونید آدرس صفحه فعلی با آرایه سرور بهش پاس بدید مثل شکل زیر:

$url =  "//{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";

و در آخر برای توضیح این تابع باید عرض کنم که محتویات صفحه را میگیره و با regex پارس میکنه، تگ title توش پیدا میکنه و محتویاتش نشون میده، اگه واقعا نیاز ندارید به این مورد استفاده نکنید چون بار پردازشی تقریبا زیادی میتونه داشته باشه، معمولا title باید از سمت بک‌اند ساخته بشه نه سمت فرانت، یکبار دیگه منطق و معماری اسکریپتی که دارید مینویسید را مرور کنید.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام