سؤال

وطيب. لقد كتبت وظيفة بسيطة (العش) لاتخاذ حجة والعودة بنفس الحجة مع شخصيات خطر أتش تي أم أل استبدال الكيانات شخصياتهم.

وظيفة يمكن أن تتخذ كحجة إما سلسلة، صفيف أو مجموعة 2D - 3D صفائف أو أكثر غير معتمدة

.

وظيفة على النحو التالي:

public function html_safe($input)
{   
    if(is_array($input)) //array was passed
    {
        $escaped_array = array();
        foreach($input as $in)
        {
            if(is_array($in)) //another array inside the initial array found
            {
                $inner_array = array();
                foreach($in as $i)
                {
                    $inner_array[] = htmlspecialchars($i);
                }
                $escaped_array[] = $inner_array;
            }
            else
                $escaped_array[] = htmlspecialchars($in);
        }
        return $escaped_array;
    }
    else // string
        return htmlspecialchars($input);
}

وهذه الدالة العمل، ولكن المشكلة هي أنني بحاجة للحفاظ على مفاتيح مجموعة من المصفوفة الأصلية.

وكان الغرض من هذه الوظيفة لجعله حتى نتمكن من تمرير حرفيا مجموعة نتائج من استعلام قاعدة بيانات ونعود كل القيم مع شخصيات HTML جعلها آمنة. من الواضح بالتالي، فإن المفاتيح في مجموعة تكون أسماء حقول قاعدة البيانات وظيفة لي في لحظة استبدال هذه مع القيم الرقمية.

وهكذا نعم، ولست بحاجة للحصول على دعم نفس الحجة التي تم تمريرها إلى وظيفة مع مفاتيح مجموعة لا تزال سليمة (إذا تم تمرير صفيف).

وعلى أمل أن يجعل المعنى، اقتراحات تقدير.

هل كانت مفيدة؟

المحلول

ويمكنك استخدام العودية بدلا من أن تعشش الكثير من foreaches:

function html_safe($input) {
    if (is_array($input)) {
        return array_map('html_safe', $input);
    } else {
        return htmlspecialchars($input);
    }
}

نصائح أخرى

وطيب اعتقد انني أحسب هذا واحد من نفسي ...

وبلدي حلقات foreach لم يكن لديهم أي مفاتيح محددة على سبيل المثال كانوا:

foreach($array_val as $val)

وبدلا من:

foreach($array_val as $key => $val)

وفي هذه الحالة كان يمكن أن مفاتيح مجموعة في الحفاظ على arrrays الانتاج.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top