Я хочу написать код, который импортирует CSV-файл, принимает полезные биты и затем помещает его в базу данных. На данный момент я написал код, который просто выводит его в таблицу, чтобы я мог проверить, все мои значения работают. Все идет нормально! Однако я недоволен тем, как появляется одно из полей моего CSV-файла. Я бы хотел его отредактировать. На данный момент поле выглядит примерно так:Str_replace не работает
Режим: 5; Скорость: скорость mSpeed; Диапазон наклона: полный
Я хочу снять все, кроме режима. Для этого я использую
list($mode) = explode(";", $fixture_options);
Воспроизводит:
Режим: 5
До сих пор так хорошо! Следующий шаг, чтобы избавиться от «Mode:» Я надеялся, что просто использовать:
$newmode = str_replace("Mode:","", $mode);
Но это не похоже на работу? Это мой полный код ниже. Без сомнения, это просто!
<?php
function Table($name,$value)
{
echo "<tr><td>$name</td><td>$value</td></tr>";
}
ini_set('auto_detect_line_endings', TRUE);
$rows = array_map('str_getcsv', file('test.csv'));
$header = array_shift($rows); // Strip out the colum headers from the CSV
$csv = array();
foreach ($rows as $row) {
/*** Remove all the unwanted Colums **/
unset($row[2]); // Remove Dimmer
unset($row[6]); // Remove Lens
unset($row[7]); // Remove Hookup
unset($row[8]); // Remove Purpose
unset($row[9]); // Remove Colour
unset($row[10]); // Remove Gobo
unset($row[11]); // Remove Focus
unset($row[16]); // Remove Lamp Type
unset($row[17]); // Remove Offset
unset($row[18]); // Remove X
unset($row[19]); // Remove Y
unset($row[20]); // Remove Z
unset($row[21]); // Remove Pan
unset($row[22]); // Remove Tilt
unset($row[23]); // Remove Spin
unset($row[25]); // Remove Notes
unset($row[26]); // Remove Footnotes
unset($row[28]); // Remove # of colour frames
unset($row[29]); // Remove # of lamps
unset($row[30]); // Remove Circuit Type
unset($row[31]); // Remove Model
unset($row[32]); // Remove Cost
unset($row[34]); // Remove Console
unset($row[35]); // Remove Layer
unset($row[36]); // Remove Tag
$channel = $row[0];
$patch = $row[1];
list($uni, $address) = explode(".", $patch); // we convert the address into univers and address.
$spot = $row[3];
$position = $row[4];
$type = $row[5];
$circuit_name = $row[12];
$circuit_number = $row[13];
$fixture_options = $row[14];
list($mode) = explode(";", $fixture_options); // We strip the other mode options out
$newmode = str_replace("Mode:","", $mode);
$wattage = $row[15];
$weight = $row[24];
$status = $row[33];
echo "<table>";
Table('Channel',$channel);
Table('Universe',$uni);
Table('Address',$address);
Table('Spot',$spot);
Table('Position',$position);
Table('Type',$type);
Table('Circuit Name',$circuit_name);
Table('Circuit Number',$circuit_number);
Table('Fixture Mode',$newmode);
Table('Wattage',$wattage);
Table('Weight',$weight);
Table('Status',$status);
echo "</table>";
}
Показать на var_dump() в '$ mode' –
Если' str_replace' не заменяет строку, которая означает, что точное строка не находится в вашей строке. Если 'var_dump' все еще оставляет сомнения, используйте' echo bin2hex ($ mode) 'и сравнивайте его с' echo bin2hex ('Mode:') '. – deceze