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

<?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.
walerus
$str = "/asd.doc";

$cols_arr = array( "'asd.doc'", "'/assets/gallery/40/297.doc'" );

var_dump( stristr( $str, 'asd.doc') ); // => string(7) "asd.doc"
var_dump( stristr( $cols_arr[0], 'asd.doc') ); // => string(8) "asd.doc'"
var_dump( stristr( $cols_arr[0], $str ) ); // => bool(false)


$str = "asd.doc";

$cols_arr = array( "'asd.doc'", "'/assets/gallery/40/297.doc'" );

var_dump( stristr( $str, 'asd.doc') ); // => string(7) "asd.doc"
var_dump( stristr( $cols_arr[0], 'asd.doc') ); // => string(8) "asd.doc'"
var_dump( stristr( $cols_arr[0], $str ) ); // => string(8) "asd.doc'"
Valick
Цитата (FitzgeraldFox @ 7.11.2016 - 10:22)
/*$doc - ассоциативный массив. Перебираем каждую пару, разделённую "=>"*/
    $cols_arr = explode("=>", $col);

это вас кто так научил?

_____________
Стимулятор ~yoomoney - 41001303250491
Игорь_Vasinsky
Цитата
/*$doc - ассоциативный массив. Перебираем каждую пару, разделённую "=>"*/
    $cols_arr = explode("=>", $col);


у тя массив в виде строки чтоли храниться?)) так для этого JSON есть

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.