2015-02-17 5 views
2

Я пытаюсь использовать trim, чтобы удалить символ подчеркивания из данных, которые возвращаются в массив $ _POST. Я пробовал использоватьПочему моя функция php trim() не работает?

$post_Value= str_replace("_", " ", $key) 

но текст, кажется, не возвращается как одна строка. Это прерывается между каждой записью. Тогда я попытался подрезать так:

<?php 
$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME); 

// Test if connection succeeded 

if (mysqli_connect_errno()) 
    { 
    die("Database connection failed: " . mysqli_connect_error() . " (" . mysqli_connect_errno() . ")"); 
} 

if (isset($_POST)) 
    { 
    $str = ""; 
    foreach($_POST as $key => $value) 
    { 
    $str = $str . $key . ","; 
    } 

    $post_Value = trim("_", $str); 
    } 

    $query = "UPDATE player_match SET categoryOption='$$post_Value' WHERE id=1"; 
?> 

При использовании триммера функция ничего не происходит, это не снимает _ характер. Моя конечная цель - поместить список с разделителями-запятыми в мою базу данных как одну строку. Почему функция trim() не работает в этом случае?

UPDATE: Найдено <br/> в вид страницы ресурса, так что я должен был сделать комбинацию из следующих действий:

 $post_Value= str_replace("<br_/>", "", $str); 
     $post_Value2= str_replace("_", " ", $post_Value); 
     $post_Value3= rtrim($post_Value2,",submit,"); 
     echo $post_Value3; 


     $query="UPDATE player_match SET categoryOption='$post_Value3' WHERE id=1"; 
+0

Если вы хотите удалить подчеркивание, вы можете использовать 'str_replace()', а второй параметра Я должен быть пустой строкой, так он должен выглядеть так: 'str_replace (" _ "," ", $ key)'. – marian0

ответ

4

Во-первых, trim() принимает аргументы в обратном порядке:$str, затем $character_mask. Таким образом, вы должны были использовать: $post_Value = trim($str, "_");

Во-вторых, trim() строки замаскированных символов только от начала и конца строки. Он не удаляет маскированные символы из строки, если они окружены незашифрованными символами.


Вы должны фактически использовать str_replace() с пустой строкой замены (вы уже пробовали один пробел в качестве замены):

$post_Value= str_replace("_", "", $key) 

Если вы хотите удалить <br> метки (в его типичной вариации), вы можете сделать это с помощью одного str_replace() вызова следующим образом:

$post_Value= str_replace(array("_", "<br>", "<br/>", "<br />"), "", $key) 

Посмотреть str_replace() документы для подробностей.

+0

Я переключил параметры и получил каждую запись на новой строке вместо одной строки. – CloudyKooper

+0

Я нашел
, когда просмотрел ресурс страницы. У меня их нет в коде, так что это сбивает с толку.Я, наконец, должен был сделать комбинацию str_replace() и rtrim() следующим образом: $ post_Value = str_replace ("", "", $ str); \t \t \t $ post_Value2 = str_replace ("_", "", $ post_Value); \t \t \t $ post_Value3 = rtrim ($ post_Value2, ", submit,"); \t \t \t echo $ post_Value3; \t \t \t // echo $ editStr = str_replace ("_", "", $ str); \t \t \t \t \t \t $ запрос = "UPDATE SET player_match categoryOption = '$ post_Value3' WHERE ID = 1"; – CloudyKooper

0

Я нашел
, когда просмотрел ресурс страницы. У меня их нет в коде, так что это сбивает с толку. В конце концов я должен был сделать комбинацию str_replace() и RTRIM(), как это:

$post_Value= str_replace("<br_/>", "", $str); $post_Value2= str_replace("", " ", $post_Value); $post_Value3= rtrim($post_Value2,",submit,"); echo $post_Value3; //echo $editedStr=str_replace("", " ", $str); $query="UPDATE player_match SET categoryOption='$post_Value3' WHERE id=1"; 
Смежные вопросы