0

1 exception(s): Exception #0 (Exception): Deprecated Functionality: strpos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in E:\xampp\htdocs\magento\vendor\magento\framework\View\Element\Template\File\Validator.php on line 141

Exception #0 (Exception): Deprecated Functionality: strpos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in E:\xampp\htdocs\magento\vendor\magento\framework\View\Element\Template\File\Validator.php on line 141

#1 strpos('E:\xampp\htdocs\...', false) called at [vendor\magento\framework\View\Element\Template\File\Validator.php:141]
#2 Magento\Framework\View\Element\Template\File\Validator->isPathInDirectories('E:/xampp/htdocs/...', array('E:/xampp/htdocs/...')) called at [vendor\magento\framework\View\Element\Template\File\Validator.php:117]
#3 Magento\Framework\View\Element\Template\File\Validator->isValid('E:/xampp/htdocs/...') called at [vendor\magento\framework\View\Element\Template.php:268]
#4 Magento\Framework\View\Element\Template->fetchView('E:/xampp/htdocs/...') called at [vendor\magento\framework\View\Element\Template.php:301]
#5 Magento\Framework\View\Element\Template->_toHtml() called at [vendor\magento\framework\View\Element\AbstractBlock.php:1100]
#6 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor\magento\framework\View\Element\AbstractBlock.php:1104]
#7 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor\magento\framework\View\Element\AbstractBlock.php:674]
#8 Magento\Framework\View\Element\AbstractBlock->toHtml() called at [vendor\magento\framework\View\Result\Page.php:249]
#9 Magento\Framework\View\Result\Page->render(&Magento\Framework\App\Response\Http\Interceptor#0000000065a055b9000000007e9c8a07#) called at [vendor\magento\framework\View\Result\Layout.php:171]
#10 Magento\Framework\View\Result\Layout->renderResult(&Magento\Framework\App\Response\Http\Interceptor#0000000065a055b9000000007e9c8a07#) called at [vendor\magento\framework\Interception\Interceptor.php:58]
#11 Magento\Framework\View\Result\Page\Interceptor->___callParent('renderResult', array(&Magento\Framework\App\Response\Http\Interceptor#0000000065a055b9000000007e9c8a07#)) called at [vendor\magento\framework\Interception\Interceptor.php:138]
#12 Magento\Framework\View\Result\Page\Interceptor->Magento\Framework\Interception\{closure}(&Magento\Framework\App\Response\Http\Interceptor#0000000065a055b9000000007e9c8a07#) called at [vendor\magento\framework\Interception\Interceptor.php:153]
#13 Magento\Framework\View\Result\Page\Interceptor->___callPlugins('renderResult', array(&Magento\Framework\App\Response\Http\Interceptor#0000000065a055b9000000007e9c8a07#), array(array('result-messages', 'result-builtin-c...', 'result-varnish-c...'))) called at [generated\code\Magento\Framework\View\Result\Page\Interceptor.php:130]
#14 Magento\Framework\View\Result\Page\Interceptor->renderResult(&Magento\Framework\App\Response\Http\Interceptor#0000000065a055b9000000007e9c8a07#) called at [vendor\magento\framework\App\Http.php:120]
#15 Magento\Framework\App\Http->launch() called at [generated\code\Magento\Framework\App\Http\Interceptor.php:24]
#16 Magento\Framework\App\Http\Interceptor->launch() called at [vendor\magento\framework\App\Bootstrap.php:261]
#17 Magento\Framework\App\Bootstrap->run(&Magento\Framework\App\Http\Interceptor#0000000065a055a2000000007e9c8a07#) called at [index.php:39]
4
  • Please clear your question what want you. Commented Jul 29, 2020 at 12:22
  • Are you using PHP V 7.3? What is your Magento version? Commented Jul 29, 2020 at 12:31
  • PHP V 7.3 and Magento ver. 2.3.5-p1 Commented Jul 29, 2020 at 13:49
  • @PrashantMaurya Have you tried the solution? Does it work for you? Commented Jul 31, 2020 at 8:25

2 Answers 2

0

If a needle is not a string, it is converted to an integer and applied as the ordinal value of a character. This behavior is deprecated as of PHP 7.3.0, and relying on it is highly discouraged. As mentioned in the official document of PHP.

Also check here: https://www.php.net/manual/en/migration73.deprecated.php

Solution: If possible then switch to PHP 7.2 as seems there's still Magento 2.3.5-p1 has an issue with PHP 7.3.

Hope this helps!

answered Jul 29, 2020 at 15:06
0

Whenever I get this issue on Windows dev stack I neeed to rewrite in

vendor/magento/framework/View/Element/Template/File/Validator.php

the isPathInDirectories method with the following :

 protected function isPathInDirectories($path, $directories)
 {
 if (!is_array($directories)) {
 $directories = (array)$directories;
 }
 $isWin = 'WIN' === strtoupper(substr(PHP_OS, 0, 3)); /** @var bool $isWin */
 $realPath = $this->fileDriver->getRealPath($path); /** @var string $realPath */
 foreach ($directories as $directory) {
 if (0 === strpos($realPath, !$isWin ? $directory : str_replace('/', DIRECTORY_SEPARATOR, $directory))) {
 return true;
 }
 }
 return false;
 }
answered Feb 25, 2022 at 12:59

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.