sed删除配置文件多余行(指定字符开头、空行)内容
#删除;开始的注释行
sed "/^;/d" php.ini
#删除空行
sed "/^$/d" php.ini
以上只是把结果输出到终端,方便查看是否正确,确认无误后可以在sed命令后加上 -i 参数,即在源文件中进行修改并保存
sed -i "/^;/d" php.ini
sed -i "/^$/d" php.ini #删除;开始的注释行
sed "/^;/d" php.ini
#删除空行
sed "/^$/d" php.ini
以上只是把结果输出到终端,方便查看是否正确,确认无误后可以在sed命令后加上 -i 参数,即在源文件中进行修改并保存
sed -i "/^;/d" php.ini
sed -i "/^$/d" php.ini objname是HTML代码内容的元素ID
function runcode(objname) {
var winname = window.open('',"_blank",'');
var obj = document.getElementById(objname);
winname.document.open('text/html','replace');
winname.opener = null;
winname.document.write(obj.value);
winname.document.close();
} <div class='fixed-footer-btns show' id='fixed-footer-btns' style='line-height: 30px;'>
<div class='holder-body' style="display: flex; justify-content: center; flex-wrap: wrap; background-color: rgba(220,220,220,.8); padding: 4px 10px;">
<div style='padding-right: 15px;'>
共{{pages.count}}条,第{{pages.page}}/{{pages.pageCount}}页
</div>
<div>
<ul class='yiiPager'>
<li class='first' v-if='pages.pageCount>1'><a href='javascript:;' class='page-jumper' @click='gotoPage(1)'>首页</a></li>
<li class='previous' v-if='pages.page>1'><a href='javascript:;' class='page-jumper' @click='gotoPage(pages.page - 1)'>上一页</a></li>
<li class='page' :class='item.class' v-for='item in pageList'><a href='javascript:;' class='page-jumper' @click='gotoPage(item.page)'>{{item.page}}</a></li>
<li class='next' v-if='pages.page < pages.pageCount'><a href='javascript:;' class='page-jumper' @click='gotoPage(pages.page + 1)'>下一页</a></li>
<li class='last' v-if='pages.pageCount>1'><a href='javascript:;' class='page-jumper' @click='gotoPage(pages.pageCount)'>末页</a></li>
</ul>
</div>
<div class='input-group input-group-sm pageGoto margin-left-sm'>
<input ref='pagenum' @change='gotoPage()' type='text' class='form-control input-sm text-center' style="width: 60px;">
<div class='input-group-btn '>
<div class='btn btn-sm btn-default' @click='gotoPage()'>跳转</div>
</div>
</div><!-- /input-group -->
<div class='input-group pageGoto margin-left-sm'>
<select ref='pageSize' v-model="pages.pageSize" @change='gotoPage(1)' class='form-control input-sm text-center' style="width: 100px;">
<option value="10">10/页</option>
<option value="30">30/页</option>
<option value="50">50/页</option>
<option value="100">100/页</option>
<option value="200">200/页</option>
<option value="300">300/页</option>
<option value="500">500/页</option>
<option value="1000">1000/页</option>
</select>
</div><!-- /input-group -->
</div>
</div>new Vue({
...
computed:{
pageList(){
const {pages} = this
var res = []
var pageViewCount = 5; //显示当前分页前后的页码数
for (var i = pages.page - pageViewCount; i <= pages.page + pageViewCount; i++) {
if (i < 1 || i > pages.pageCount) {
continue;
}
res.push({
class: i == pages.page ? 'selected' : '',
page: i,
})
}
return res
}
}
...
}) Element.getBoundingClientRect() 方法返回一个 DOMRect 对象,其提供了元素的大小及其相对于视口的位置。
参考文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Element/getBoundingClientRect
参数:无。
返回值是一个 DOMRect 对象,是包含整个元素的最小矩形(包括 padding 和 border-width)。该对象使用 left、top、right、bottom、x、y、width 和 height 这几个以像素为单位的只读属性描述整个矩形的位置和大小。除了 width 和 height 以外的属性是相对于视图窗口的左上角来计算的。
element.getBoundingClientRect().width
element.getBoundingClientRect().height
通过向通义灵码扩展提问,AI自动生成的方式,由最初的“生成一个带界面的时钟程序”,再“添加一个倒计时功能”、“添加音乐播放”、“添加停止播放按钮”一步一步生成了最终的这个程序,现在的AI已经很牛B了
import time
import pygame
from tkinter import Tk, Label, Button, Entry, messagebox
# 一个倒计时计时器程序
# 这个程序使用阿里云【灵码】插件,一步一步优化由AI生成的
# VS code IDE的扩展中安装TONGYI lingma
class TimerClock:
def __init__(self, master):
self.master = master
master.title("Timer Clock")
pygame.mixer.init() # 初始化pygame.mixer
# 创建标签以显示时间
self.clock_label = Label(master, font=("Arial", 80), bg="black", fg="white")
self.clock_label.pack(fill="both", expand=1)
# 创建输入框以输入定时器时长
self.timer_entry = Entry(master)
self.timer_entry.pack()
# 创建按钮以设置/停止定时器
self.timer_button = Button(master, text="Start Timer", command=self.toggle_timer)
self.timer_button.pack()
# 创建按钮以停止音乐
self.stop_music_button = Button(master, text="Stop Music", command=self.stop_music)
self.stop_music_button.pack()
# 定时器相关变量
self.timer_duration = None
self.timer_start_time = None
self.timer_running = False
self.countdown_id = None # 存储倒计时ID
# 初始化并开始更新时间
self.update_time()
def toggle_timer(self):
if not self.timer_running:
try:
self.timer_duration = int(self.timer_entry.get())
if self.timer_duration is not None:
self.timer_start_time = time.time()
self.countdown_id = self.master.after(0, self.countdown)
self.timer_button.config(text="Stop Timer")
self.timer_running = True
except ValueError:
messagebox.showerror("Error", "Please enter a valid integer.")
else:
self.timer_running = False
self.timer_button.config(text="Start Timer")
self.master.after_cancel(self.countdown_id)
self.countdown_id = None
pygame.mixer.music.stop()
def countdown(self):
remaining_time = max(0, self.timer_duration - int(time.time() - self.timer_start_time))
self.timer_button.config(text=f"Countdown: {remaining_time} sec")
if remaining_time > 0:
self.countdown_id = self.master.after(1000, self.countdown)
else:
self.timer_alert()
def timer_alert(self):
pygame.mixer.music.load('alarm.mp3')
pygame.mixer.music.play(-1) # 循环播放音乐
self.timer_running = False
self.timer_button.config(text="Start Timer")
def stop_music(self):
pygame.mixer.music.stop()
self.timer_button.config(state='normal')
def update_time(self):
current_time = time.strftime("%H:%M:%S")
self.clock_label.config(text=current_time)
self.clock_label.after(1000, self.update_time)
if __name__ == "__main__":
root = Tk()
my_clock = TimerClock(root)
root.mainloop()