Невозможно использовать функцию эха в PHP на Ubuntu [duplicate]

Если у вас есть dataframe, df.columns сбрасывает все в список, который вы можете манипулировать, а затем переназначать в свою фреймворк как имена столбцов ...

columns = df.columns
columns = [row.replace("$","") for row in columns]
df.rename(columns=dict(zip(columns, things)), inplace=True)
df.head() #to validate the output

Лучший способ? ИДК. Способ - да.

. Лучший способ оценить все основные методы, предложенные в ответах на вопрос, ниже, используя cProfile для измерения памяти и amp; время исполнения. @kadee, @kaitlyn, & amp; У @eumiro были функции с самым быстрым временем выполнения, хотя эти функции настолько быстры, что мы сравниваем округление .000 и .001 секунд для всех ответов. Мораль: мой ответ выше, скорее всего, не самый лучший.

import pandas as pd
import cProfile, pstats, re

old_names = ['$a', '$b', '$c', '$d', '$e']
new_names = ['a', 'b', 'c', 'd', 'e']
col_dict = {'$a': 'a', '$b': 'b','$c':'c','$d':'d','$e':'e'}

df = pd.DataFrame({'$a':[1,2], '$b': [10,20],'$c':['bleep','blorp'],'$d':[1,2],'$e':['texa$','']})

df.head()

def eumiro(df,nn):
    df.columns = nn
    #This direct renaming approach is duplicated in methodology in several other answers: 
    return df

def lexual1(df):
    return df.rename(columns=col_dict)

def lexual2(df,col_dict):
    return df.rename(columns=col_dict, inplace=True)

def Panda_Master_Hayden(df):
    return df.rename(columns=lambda x: x[1:], inplace=True)

def paulo1(df):
    return df.rename(columns=lambda x: x.replace('$', ''))

def paulo2(df):
    return df.rename(columns=lambda x: x.replace('$', ''), inplace=True)

def migloo(df,on,nn):
    return df.rename(columns=dict(zip(on, nn)), inplace=True)

def kadee(df):
    return df.columns.str.replace('$','')

def awo(df):
    columns = df.columns
    columns = [row.replace("$","") for row in columns]
    return df.rename(columns=dict(zip(columns, '')), inplace=True)

def kaitlyn(df):
    df.columns = [col.strip('$') for col in df.columns]
    return df

print 'eumiro'
cProfile.run('eumiro(df,new_names)')
print 'lexual1'
cProfile.run('lexual1(df)')
print 'lexual2'
cProfile.run('lexual2(df,col_dict)')
print 'andy hayden'
cProfile.run('Panda_Master_Hayden(df)')
print 'paulo1'
cProfile.run('paulo1(df)')
print 'paulo2'
cProfile.run('paulo2(df)')
print 'migloo'
cProfile.run('migloo(df,old_names,new_names)')
print 'kadee'
cProfile.run('kadee(df)')
print 'awo'
cProfile.run('awo(df)')
print 'kaitlyn'
cProfile.run('kaitlyn(df)')
275
задан samayo 12 May 2013 в 16:41
поделиться

18 ответов

Установите

short_open_tag=On

в php.ini

И перезапустите сервер Apache.

490
ответ дан emaillenin 23 August 2018 в 19:36
поделиться

В CentOS 6 (также проверенном на Centos 7) вы не можете установить short_open_tag в /etc/php.ini для php-fpm. У вас будет ошибка:

ERROR: [/etc/php.ini:159] unknown entry 'short_open_tag'
ERROR: Unable to include /etc/php.ini from /etc/php-fpm.conf at line 159
ERROR: failed to load configuration file '/etc/php-fpm.conf'
ERROR: FPM initialization failed

Вы должны отредактировать конфигурацию для своего сайта, которая может быть найдена в /etc/php-fpm.d/www.conf и записать в конце файла:

php_value[short_open_tag] =  On
9
ответ дан Anh Hùng Hoàng 23 August 2018 в 19:36
поделиться

Чтобы установить короткие теги для открытия с помощью скрипта установки Vagrant на Ubuntu:

sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php5/apache2/php.ini
18
ответ дан Bradley Flood 23 August 2018 в 19:36
поделиться

Чтобы включить short_open_tag для определенного домена с php-fpm, вы должны изменить:

/etc/php5/fpm/pool.d/xxxxxxxxxx.conf

Где xxxxx - номер сокета домена.

И добавить: php_value [short_open_tag] = On

0
ответ дан contremaitre 23 August 2018 в 19:36
поделиться

Я вижу, что все приведенные выше ответы частично верны. На самом деле все приложения PHP 21st Century будут иметь FastCGI Process Manager (php-fpm), поэтому после добавления php-info () в ваш скрипт test.php и проверите правильный путь для php.ini

Go to php.ini and set short_open_tag = On

ВАЖНО: тогда вы должны перезапустить процесс php-fpm, чтобы он мог работать!

sudo service php-fpm restart

, а затем, наконец, перезагрузите ваш сервер nginx / http

sudo service nginx restart
11
ответ дан Eddy Ferreira 23 August 2018 в 19:36
поделиться

вам нужно включить short_open_tag.

short_open_tag = On
9
ответ дан Jage 23 August 2018 в 19:36
поделиться
 short_open_tag = On

в php.ini И перезапустите сервер Apache.

-1
ответ дан Muhibbullah Muhi 23 August 2018 в 19:36
поделиться

Если вы используете xampp в окнах, пожалуйста, сделайте следующее

  1. Откройте панель управления XAMPP.
  2. Нажмите кнопку CONFIG.
  3. Перейдите к PHP (php.ini).

Найти short_open_tag с помощью утилиты ctrl + f

Вы найдете ;short_open_tag

, любезно удалите точку с запятой (;) из строки.

и сохраните его как short_open_tag = on

Наконец, перезапустите сервер Apache

1
ответ дан Praful Rajput 23 August 2018 в 19:36
поделиться
sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php/7.2/apache2/php.ini

Это работает на php7.2 на ubuntu 16, такой же ответ, как и выше, на Bradley Flood, хотя каталог, в котором хранится файл конфигурации, изменился.

Также вы можете изменить версию в строке php, чтобы соответствовать вашей установленной версии.

0
ответ дан Raymie 23 August 2018 в 19:36
поделиться

Для пользователей Wamp Server существует более простой способ: вы можете включить этот параметр просто (слева), щелкнув один раз на значке WampServer, выберите PHP -> Настройки PHP -> короткий открытый тег. Подождите секунду, затем WampServer автоматически перезапустит ваш PHP, а также его веб-службу.

изначально: http://osticket.com/forums/showthread.php?t=3149

4
ответ дан Reza Ameri 23 August 2018 в 19:36
поделиться
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
;short_open_tag=Off   <--Comment this out
; XAMPP for Linux is currently old fashioned
short_open_tag = On   <--Uncomment this
4
ответ дан Rhadley 23 August 2018 в 19:36
поделиться

Это можно сделать, включив short_open_tag в php.ini:

short_open_tag = on

Если у вас нет доступа к php.ini, вы можете попытаться включить их через файл .htaccess, но возможно, что хостинговая компания отключила это, если вы находитесь на общедоступном хостинге:

php_value short_open_tag 1

Для людей, которые думают, что short_open_tags - плохая практика по php 5.4, будет поддерживаться shorttag <?= ... ?> везде, независимо от настроек, поэтому нет причин не использовать их, если вы можете управлять настройками на сервере. Также сказано в этой ссылке: short_open_tag

68
ответ дан RJD22 23 August 2018 в 19:36
поделиться

, если вы используете xampp, вы заметите, что файл php.ini дважды упоминает short_open_tag. Включите второй для short_open_tag = Вкл. Первый из них закомментирован, и у вас может возникнуть соблазн раскомментировать и отредактировать его, но он перегружен вторым short_open_tag

1
ответ дан Roger Gajraj 23 August 2018 в 19:36
поделиться

, если вы отредактируете файл php.ini, не забудьте перезапустить службу (apache2 и т. д.), чтобы изменения в php.ini вступили в силу

6
ответ дан Steve Wasiura 23 August 2018 в 19:36
поделиться

Как это просто, следуйте следующим шагам:

  1. перейдите в файл php.ini
  2. find, 'short_open_tag' и установите его для включения,
  3. перезапустить сервер

, поэтому short_open_tag = On

9
ответ дан Suresh KUMAR Mukhiya 23 August 2018 в 19:36
поделиться

Установите asp_tags = On и short_open_tag = On в обоих файлах \apache\Apache2.2.21\bin\php.ini и \bin\php\php5.3.8\php.ini, а затем перезапустите сервер Apache.

-6
ответ дан Tim Cooper 23 August 2018 в 19:36
поделиться

Это можно сделать, включив short_open_tag в php.ini:

1. Чтобы найти файл php.ini, в строке комментария выполнить

 php --ini

вы получите что-то например,

Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /etc/php.ini
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed:      /etc/php.d/curl.ini,
/etc/php.d/fileinfo.ini,
/etc/php.d/gd.ini,
/etc/php.d/json.ini,
/etc/php.d/mcrypt.ini,
/etc/php.d/mysql.ini,
/etc/php.d/mysqli.ini,
/etc/php.d/pdo.ini,
/etc/php.d/pdo_mysql.ini,
/etc/php.d/pdo_sqlite.ini,
/etc/php.d/phar.ini,
/etc/php.d/sqlite3.ini,
/etc/php.d/zip.ini

См. 2-я строка из вывода комментария. Файл будет указан по указанному пути.

2. Откройте файл php.ini и найдите short_open_tag. По умолчанию это off изменит его на on.

3. Перезагрузите сервер, выполните этот комментарий

service httpd restart

Спасибо

18
ответ дан user2086641 23 August 2018 в 19:36
поделиться

Если вы используете Ubuntu с Apache+php5, то в текущих версиях есть 2 места, где вам нужно перейти на short_open_tag = On

  1. /etc/php5/apache2/php.ini - это для страницы, загруженные через ваш веб-сервер (Apache)
  2. /etc/php5/cli/php.ini - эта конфигурация используется, когда вы запускаете свои php-файлы из командной строки, например: php yourscript.php - для ручных или cronjob-файлов php напрямую на сервере.
5
ответ дан Vladas Freimanas 23 August 2018 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: