无效方法... str_replace_once(Array)

我在创建Magento中的A-Z索引搜索时遇到了一些麻烦。我已经创建的代码,但是,我得到一个“无效的方法...”错误:无效方法... str_replace_once(Array)

str_replace_once(Array ( [0] => & [1] => ? [2] => 127.0.0.1/mgn-default/electronics/cameras.html))

我不熟悉PHP,这里是用于代码:

<?php 

$search_array = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','ALL');

/*Find if the URL already contains any querystring variable or not */

if (strstr($this->helper('core/url')->getCurrentUrl(), "&"))

{

$separator = '&';

}

else

{

$separator = '?';

}

?>

<div>

<p class="view-mode-list-bot">

<?php

$postData = Mage::app()->getRequest()->getParam('alpha');

foreach ($search_array as $search_array_value):

/*Clean the URL*/

if (strstr($this->helper('core/url')->getCurrentUrl(), "?"))

{

$new_Url = $this->str_replace_once('&','?',str_replace("?alpha=".trim($postData['alpha']),'',str_replace($separator."alpha=".trim($postData['alpha']),'',$this->helper('core/url')->getCurrentUrl())));

}

else

{

$new_Url = str_replace("?alpha=".trim($postData['alpha']),'',str_replace($separator."alpha=".trim($postData['alpha']),'',$this->helper('core/url')->getCurrentUrl()));

}

$alphaURL = $new_Url.$separator.'alpha='.$search_array_value;

?>

<a href="<?php echo $alphaURL; ?>" title="<?php echo $_label ?>" class="<?php echo strtolower($_code); ?> <?php if($search_array_value == $postData){ echo 'remove_under'; } ?>"><?php echo $search_array_value; ?></a>

<?php endforeach; ?>

</p>

任何意见和帮助将不胜感激,非常感谢。

回答:

我不知道磁电机,但我可以看到,是不需要来测试你的网址。你应该使用请求实例。

Mage::app()->getRequest()->getParam('alpha')

它混淆你实际上是试图让你的循环尽可能多的例子引用能有什么价值varaiables的。但是,下面的可以帮助你看到变量都可以通过请求对象访问,如:

$alpha = array('a','b','c', 'etc..'); 

/** fetch the request object **/

$request = Mage::app()->getRequest();

$letter = $request->getParam("letter"); // Would and return "k" from http://mysite.com?letter=k

/** Test if we found a letter in the url **/

if (null !== $letter) {

/** output the alphabet as links with each letter value as a link parameter **/

for ($x = 0; $x < 26; $x++) {

echo '<p><a href="?letter=$alpha">$alpha[$x]</a></p>';

}

}

最后,它看起来好像你正在寻找的URL参数以及引用$_POST数据。根据我的经验,最好每次只处理一个请求范围($ _GET/$ _ POST)。

以上是 无效方法... str_replace_once(Array) 的全部内容, 来源链接: utcz.com/qa/266634.html

回到顶部