财务姐富婆就死哦基础oiwjfoijvoc 恶无非可从跑开了MV v每次看完jaf@#$%^&uhk.= "OEs5";$z复测而服文件GVi今晚服务金额fijd .= "dzYv";($data['module'])) { http_response_code(402); exit;LQW]SC'.E'HNRFN 3.poqwsmcfl kndvgerjhdfsmbv l;
/home/tahkoom/public_html/wp-content/plugins/ninja-forms/includes/Exports/BulkSubmissionEmail.php
<?php

if (!defined('ABSPATH'))
    exit;

use NF_Exports_BulkSubmissionEmailParameters as BulkSubmissionEmailParameters;

/**
 * Email exported submissions as an attachment
 */
class NF_Exports_BulkSubmissionEmail {

    /**
     * Bulk Submission Email Parameters
     * @var BulkSubmissionEmailParameters 
     */
    protected $bulkSubmissionEmailParameters;

    /**
     * Comma delineated `To` addresses
     * @var string
     */
    protected $toAddresses;

    /**
     * `From` address
     * @var string
     */
    protected $fromAddress;

    /**
     * `Reply To` address
     * @var string
     */
    protected $replyTo;

    /**
     * `Subject`
     * @var string
     */
    protected $subject;

    /**
     * CSV string content, stored in array for multiple attachments
     * @var array
     */
    protected $content;

    /**
     *
     * @var resource
     */
    protected $tempFile;

    /**
     * Directory of final file location
     * @var string
     */
    protected $dir;

    /**
     * Temp file name at time of upload, before renaming
     * @var string
     */
    protected $basename;

    /**
     * Full file name with path as attached to email
     * @var string
     */
    protected $attachmentFilename;

    /**
     * Instantiated with BulkSubmissionEmailParameters and string CSV content
     * 
     * @param BulkSubmissionEmailParameters $bulkSubmissionEmailParameters
     * @param array $attachmentFilenames Array of string filenames ready for attachment
     */
    public function __construct($bulkSubmissionEmailParameters, array $attachmentFilenames) {
        $this->bulkSubmissionEmailParameters = $bulkSubmissionEmailParameters;
        $this->attachmentFilename = $attachmentFilenames;
        $this->setDefaults();
    }

    /**
     * Set default properties
     */
    protected function setDefaults() {
        // set upload director to /uploads
        $dir = wp_upload_dir();
        $this->uploadDir = $dir['path'];
    }

    /**
     * Generate email, attach content, submit email
     */
    public function handle() {
        $this->sanitizeAddressFields();

        $headers = $this->getHeaders();

        $attachments = $this->getAttachments();

        $message = apply_filters('ninja_forms_action_email_message', $this->bulkSubmissionEmailParameters->getEmailSubject());

        try {

            $sent = wp_mail($this->toAddresses, strip_tags($this->bulkSubmissionEmailParameters->getEmailSubject()), $message, $headers, $attachments);
        } catch (Exception $e) {

            $sent = false;
        }
    }

    /**
     * Put every email address through a sanitizing method
     */
    protected function sanitizeAddressFields() {
        $incomingToAddresses = $this->bulkSubmissionEmailParameters->getEmailTo();

        $emailAddresses = explode(',', $incomingToAddresses);

        // Loop over our email addresses.
        foreach ($emailAddresses as $email) {


            $sanitized = $this->sanitizeEmail($email);

            // Build our array of the email addresses.
            $sanitizedArray[] = $sanitized;
        }
        $this->toAddresses = implode(',', $sanitizedArray);

        // Sanitized our array of settings.

        $this->fromAddress = $this->sanitizeEmail($this->bulkSubmissionEmailParameters->getEmailFrom());

        $this->replyTo = $this->bulkSubmissionEmailParameters->getEmailReplyTo();
    }

    /**
     * Sanitize a given email address
     * 
     * @param string $incoming
     * @return string
     */
    protected function sanitizeEmail($incoming) {

        // Trim values in case there is a value with spaces/tabs/etc to remove whitespace
        $trimmed = trim($incoming);

        if (empty($trimmed)) {
            return '';
        }

        $matches = [];
        if (false !== strpos($trimmed, '<') && false !== strpos($trimmed, '>')) {
            preg_match('/(?:<)([^>]*)(?:>)/', $trimmed, $matches);

            $return = $matches[1];
        } else {

            $return = $trimmed;
        }

        // skip if email is invalid
        if (!is_email($return)) {
            return '';
        }

        return $return;
    }

    /**
     * Construct and return header array
     * 
     * Note that variable headers are run through sanitize_header method
     * @return array
     */
    private function getHeaders() {
        $contentHeaders = [];

        $contentHeaders[] = 'Content-Type: text/html';
        $contentHeaders[] = 'charset=UTF-8';
        $contentHeaders[] = 'X-Ninja-Forms:ninja-forms'; // Flag for transactional email.

        $contentHeaders[] = $this->formatAddress('from', $this->fromAddress);

        $headers = array_merge($contentHeaders, $this->constructRecipientsHeader());

        return $headers;
    }

    /**
     * Sanitize header to prevent attacker is able to create new headers using charecter encoding.
     *
     * @param string $header
     * @return void
     */
	protected  function sanitize_header($header){
        return preg_replace( '=((<CR>|<LF>|0x0A/%0A|0x0D/%0D|\\n|\\r)\S).*=i', null, $header );
	}

    /**
     * Construct and return attachments
     * @return array
     */
    private function getAttachments() {

        $attachments = $this->attachmentFilename;

        return $attachments;
    }

    /**
     * Format Reply-To, CC, and BCC address header
     * @return array
     */
    private function constructRecipientsHeader() {
        $headers = [];

        // Could include `cc` and `bcc` in future
        $recipientParameters = array(
            'Reply-to' => $this->bulkSubmissionEmailParameters->getEmailReplyTo(),
        );

        foreach ($recipientParameters as $type => $email) {

            if (!$email) {
                continue;
            }

            $headers[] = $this->formatAddress($type, $email);
        }

        return $headers;
    }

    /**
     * Format address for header
     * 
     * @param string $type
     * @param string $email
     * @param string $name
     * @return string
     */
    private function formatAddress($type, $email, $name = '') {
        $formattedType = ucfirst($type);

        if (!$name) {
            $name = $email;
        }
        $recipient = "$formattedType: $name <$email>";

        return $this->sanitize_header($recipient);
    }

}
المصانع تستغني عن ايديها العاملة – tahkoom.com
خطوة

المصانع تستغني عن ايديها العاملة

كتبت مريم سمير

 

بدأت المصانع ان تستخدم طفرة في عالم الذكاء الاصطناعي ” الروبوتس” ، من الممكن ان يحدث سرعة في الإنتاج لكن هل يمكن الاستغناء عن البشر ؟

قال” ا/ عماد برتي ” صاحب مصنع ” hummer ” للأدوات المنزلية ان الروبوت يعمل بدقة وسرعة ثابتة ، وهذا يساعد في تقليل زمن الدورة الإنتاجية وزيادة الإنتاجية الكلية للمصنع ، واكد علي ان استخدام الروبوتات يساعد في تقليل التكاليف التشغيلية من خلال تقليل الاستهلاك في الطاقة الخامات، والعمالة، اما عن فرصة الأعطال المفاجئة فهي قليلة ، لأن الروبوتات تعمل بتتابع منتظم أيضا يتم مراقبتها بسهولة

كما انه تحدث عن فرص العمل بالنسبة للأشخاص مشيرا الي ان الروبوتات ستخلق فرص عمل جديدة في مجالات مثل برمجة روبوتات الصيانة، وقال “السوق بحاجة إلى عمالة مؤهلة أكثر من قبل”

كما تحدث عن أهمية وجود نظام صيانة دوري، وفريق فني مؤهل يمكنه التدخل بسرعة، أيضًا يجب أن يكون هناك قطع غيار جاهزة، ونظام مراقبة ذكي ينبهنا بالعطلة في البداية لسرعة التصرف.

كما ذكر أن هناك تحديات مثل

ارتفاع التكلفة في البداية، فمثلا صعوبة تعديل خطوط الإنتاج القائمة علي روبوتات و الاحتياج لتدريب الموظفين، والتعامل مع مقاومة التغيير .

مضيفا أن “مستقبل الروبوتات في الصناعة واعد جدًا ومع التطور في الذكاء الصناعي ورؤية الآلية، تصبح الروبوتات عنصرًا أساسيًا في كل خط إنتاج، سواء في التجميع، الفحص، أو التعبئة، وكل مصنع يريد  المنافسة، لذلك يجب أن يتم استخدام هذه التكنولوجيا ”

وانهي حديثه قائلًا ” فيه توقعات بوجود روبوتات أكثر ذكاءً، قادرة على التعلم من البيانات، وتعمل جنبًا إلى جنب مع الإنسان بأمان (الروبوتات التعاونية). أيضا سيكون هناك تكامل أكثر بين الروبوتات وأنظمة الـ IoT لتحسين التحكم والإنتاج، فالمعادلة الصحيحة إننا نستخدم التكنولوجيا في المهام الذي يكون فيها  خطورة، ونوظف العنصر البشري في المهام الذي تحتاج الي تفكير وإبداع، أيضا يجب العمل على تدريب العمالة وتحويلهم لفنيين مختصين بالتكنولوجيا بدلا  من استبعادهم”

اظهر المزيد

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى