Проверка совпадения строк не работает

FitzgeraldFox

Новичок
Добрый день. Я работаю на CMS Modx.
Я хочу сделать так, чтобы при переходе на имя_сайта.рф/имя_документа.pdf
открывался документ в браузере
Для этого я сделал вот такой скрипт (тестировочный):

PHP:
<?php
$props = array(
    'album' => 40,
    'thumbTpl' => 'EmptyThumbTpl',
);
$docs = substr($modx->runsnippet('Gallery', $props), 0, -1);
//$str = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$str = "/asd.doc";
 
$doc = explode(",",$docs);
 
foreach($doc as $col)
{
    /*$doc - ассоциативный массив. Перебираем каждую пару, разделённую "=>"*/
    $cols_arr = explode("=>", $col);
    /*
    *  В массиве $doc 3 элемента, и поэтому выводятся данные каждой пары в массиве $doc
    *  $cols_arr => array(2) { [0]=> string(9) "'asd.doc'" [1]=> string(28) "'/assets/gallery/40/297.doc'" } ...
    *  $cols_arr[0] => string(9) "'asd.doc'" ...
    *  stristr($str, 'asd.doc') => string(7) "asd.doc"
    *  stristr($cols_arr[0], 'asd.doc') => string(8) "asd.doc'"
    *  stristr($str, $cols_arr[0]) => bool(false)
    */
    if(strpos($str, $cols_arr[0])){
        print('Yes');
    }
}
Подскажите пожалуйста, почему stristr($str, $cols_arr[0]) => bool(false)?
Ведь и $str, и $cols_arr[0] - строки, содержащие "asd.doc". Значит, это выражение должно дать true.
 

Andkorol

Новичок
PHP:
$str = "/asd.doc";
// ...
    /*
    *  $cols_arr[0] => string(9) "'asd.doc'"
    *  stristr($str, $cols_arr[0]) => bool(false)
    */
Подскажите пожалуйста, почему stristr($str, $cols_arr[0]) => bool(false)?
Ты пытаешься в строке «/asd.doc» найти вхождение строки «'asd.doc'» – вроде ж различия достаточно очевидны.
Избавься от одинарных кавычек в $cols_arr[0] – и будет тебе типа ОК.
 
Сверху