Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 多个stru_替换?_Php - Fatal编程技术网

Php 多个stru_替换?

Php 多个stru_替换?,php,Php,我正在尝试替换CodeIgniter中具有特定参数的URL。在这一点上,CI并不重要,因为我有它最好的部分在工作 假设我的URL是: ?device=field1-field2_field3+field4 通过回显$DeviceLink 2,应显示: field1 field2.field3*field4 目前,除了替换+,它可以与任何东西一起工作。出于某种原因,它将+替换为空格 但是,我无法使用下面的代码使其工作。有什么想法吗 $device = $this->input-&

我正在尝试替换CodeIgniter中具有特定参数的URL。在这一点上,CI并不重要,因为我有它最好的部分在工作

假设我的URL是:

?device=field1-field2_field3+field4
通过回显$DeviceLink 2,应显示:

field1 field2.field3*field4
目前,除了替换+,它可以与任何东西一起工作。出于某种原因,它将+替换为空格

但是,我无法使用下面的代码使其工作。有什么想法吗

    $device = $this->input->get('device');
    $devicelink = str_replace("-"," ",$device);
    $devicelink1 = str_replace("_",".",$devicelink);
    $devicelink2 = str_replace("+","*",$devicelink1);
试试这个:

$search  = array('-', '_', '+');
$replace = array(' ', '.', '*');
$subject = $this->input->get('device');

$deviceLink = str_replace($search, $replace, $subject);
试试这个:

$search  = array('-', '_', '+');
$replace = array(' ', '.', '*');
$subject = $this->input->get('device');

$deviceLink = str_replace($search, $replace, $subject);

查询字符串中的
+
实际上表示一个空格字符,因此使用这个(非常奇怪的)查询字符串:

?device=field1-field2_field3+field4
$device = $this->input->get('device');
$devicelink = str_replace(" ", "*", $device);
$devicelink1 = str_replace("_", ".", $devicelink);
$devicelink2 = str_replace("-", " ", $devicelink1);
$this->input->get('device')
等于
field1-field2\u field3 field4

要回答如何使用此精确查询字符串获得所需输出的文字问题,请执行以下操作:

?device=field1-field2_field3+field4
$device = $this->input->get('device');
$devicelink = str_replace(" ", "*", $device);
$devicelink1 = str_replace("_", ".", $devicelink);
$devicelink2 = str_replace("-", " ", $devicelink1);
或:

如果在将这些字符输入原始查询字符串时遇到问题,请确保正确编码:

?device=field1+field2.field3%2Afield4

请参阅PHP的本机
urlencode
函数,以获取以下帮助:

+
在查询字符串中实际上表示一个空格字符,因此使用此(非常奇怪的)查询字符串:

?device=field1-field2_field3+field4
$device = $this->input->get('device');
$devicelink = str_replace(" ", "*", $device);
$devicelink1 = str_replace("_", ".", $devicelink);
$devicelink2 = str_replace("-", " ", $devicelink1);
$this->input->get('device')
等于
field1-field2\u field3 field4

要回答如何使用此精确查询字符串获得所需输出的文字问题,请执行以下操作:

?device=field1-field2_field3+field4
$device = $this->input->get('device');
$devicelink = str_replace(" ", "*", $device);
$devicelink1 = str_replace("_", ".", $devicelink);
$devicelink2 = str_replace("-", " ", $devicelink1);
或:

如果在将这些字符输入原始查询字符串时遇到问题,请确保正确编码:

?device=field1+field2.field3%2Afield4

请参阅PHP的本机
urlencode
函数,以获取以下帮助:

str\u replace可以很好地接受数组。 str_替换(数组(“她”、“爱”、“我”)、数组(“他”、“恨”、“你”)、“她爱我而不是你”)

str_replace将返回“他恨你而不是你”。(可怕的例子,嗯?)

如果输入一个要搜索的数组和一个字符串作为替换,它将用hay stack中的给定字符串替换所有数组值

或者,如果输入两个数组,其中的元素数相同,“搜索”数组中的元素将替换为各自的替换值


$devicelink=str_replace(数组('-',''.','+',数组('''.','*'),$device)

str_replace很好地接受数组。 str_替换(数组(“她”、“爱”、“我”)、数组(“他”、“恨”、“你”)、“她爱我而不是你”)

str_replace将返回“他恨你而不是你”。(可怕的例子,嗯?)

如果输入一个要搜索的数组和一个字符串作为替换,它将用hay stack中的给定字符串替换所有数组值

或者,如果输入两个数组,其中的元素数相同,“搜索”数组中的元素将替换为各自的替换值


$devicelink=str_replace(数组('-',''.','+',数组('''.','*'),$device)

“不能让它工作”是你能做的最好的描述你的问题吗?如果你希望答案中有同样的细节,那么答案是“你需要修复它”。是的,好的,当你写这篇文章时我正在编辑它,因为我意识到我没有描述我的实际问题什么是
echo$this->input->get('device')收益率<代码>字段1-2\u字段3+4
?然后您是否尝试过
echo str_替换(数组('-','''.','+')、数组(''''.','*')、$this->input->get('device')?是的,在CodeIgniter中,$this->input->get('device')与$\u get['device']相同。我现在就试着用“不能让它工作”来描述你的问题?如果你希望答案中有同样的细节,那么答案是“你需要修复它”。是的,好的,当你写这篇文章时我正在编辑它,因为我意识到我没有描述我的实际问题什么是
echo$this->input->get('device')收益率<代码>字段1-2\u字段3+4
?然后您是否尝试过
echo str_替换(数组('-','''.','+')、数组(''''.','*')、$this->input->get('device')?是的,在CodeIgniter中,$this->input->get('device')与$\u get['device']相同。我现在就试试,谢谢,我会试试的。理解它的奇怪,但是我需要一种方法来区分空格、hypen、点和符号,因为我不能在URL本身中使用点或符号,因此使用u和+代替为什么不能在URL中使用点或符号?记住,你在URL中看到的只是简单的编码,你应该能够使用你需要的任何值。我认为有一个最佳实践,在URL的字符串中不使用点或符号。例如,我的一些可能是page?device=samsung at&t-galaxy-s-ii-skyrocket或page?device=samsung-galaxy-tab-10.1。我不确定,这会打乱我的搜索引擎优化,或者搜索引擎会认为%26是一个好问题。可能是需要查找/询问的内容。我非常怀疑这会对你产生负面影响。谢谢你会给我一个机会。理解它的奇怪,但是我需要一种方法来区分空格、hypen、点和符号,因为我不能在URL本身中使用点或符号,因此使用u和+代替为什么不能在URL中使用点或符号?记住,你在URL中看到的只是简单的编码,你应该能够使用你需要的任何值。我认为有一个最佳实践,在URL的字符串中不使用点或符号。例如,我的一些可能是page?device=samsung at&t-galaxy-s-ii-skyrocket或page?device=samsung-galaxy-tab-10.1。我不确定,这会打乱我的搜索引擎优化,或者搜索引擎会认为%26是一个好问题。可能是需要查找/询问的内容。我非常怀疑这会对你产生负面影响。