小编fil*_*ras的帖子

Imagick PHP 5.4扩展不适用于相对路径.(视窗)

我正在尝试在Windows上安装imagick PHP扩展.它正在开发PHP 5.2,PHP 5.3,但我遇到了PHP 5.4的问题.

Imagick版本:ImageMagick-6.7.6-3-Q16-windows-dll.模块正在运行.我可以在phpinfo()中看到想象力.

问题是,imagick无法识别文件的相对路径.例如,如果我在同一个文件夹中有简单的index.phpa.jpg,我就无法使用,$im = new imagick('a.jpg');因为我得到了异常:

致命错误:未捕获异常'ImagickException',消息'无法打开图像`a.jpg':D:\ Web\i\index.php中没有此类文件或目录@ error/blob.c/OpenBlob/2614':3堆栈跟踪:#0 D:\ Web\i\index.php(3):Imagick - > __ construct('a.jpg')#1 {main}在第3行的D:\ Web\i\index.php中抛出

但是,当我使用绝对路径时,$im = new imagick('D:\web\i\a.jpg');它正在工作.

我发现,Imagick使用Apache核心目录作为参考.我没有路径保存图像:

$ im-> writeImage('this-is-what-im-looking-for.jpg');

我在C:\ Program Files(x86)\ Apache24\this-is-what-im-looking-for.jpg中找到它

问题是,我所有的旧脚本都是用相对路径编写的,我想用它们来计算.

我不知道,如果问题出在想象本身,或者PHP 5.4中的某个地方.

先感谢您

php windows relative-path imagick

14
推荐指数
1
解决办法
9278
查看次数

两个同时发生的AJAX请求不会并行运行

我有两个同时运行的AJAX请求有问题.我有一个PHP脚本,它将数据导出到XSLX.此操作需要花费大量时间,因此我正在尝试向用户显示进度.我正在使用AJAX和数据库方法.实际上,我很确定它曾经工作但我无法弄清楚为什么,它不再适用于任何浏览器.新浏览器有什么变化吗?

$(document).ready(function() {

        $("#progressbar").progressbar();

        $.ajax({
            type: "POST",
            url: "{$BASE_URL}/export/project/ajaxExport",
            data: "type={$type}&progressUid={$progressUid}" // unique ID I'm using to track progress from database
        }).done(function(data) {
            $("#progressbar-box").hide();
            clearInterval(progressInterval);
        });

        progressInterval = setInterval(function() {
            $.ajax({
                type: "POST",
                url: "{$BASE_URL}/ajax/progressShow",
                data: "statusId={$progressUid}" // the same uinque ID
            }).done(function(data) {
                data = jQuery.parseJSON(data);
                $("#progressbar").progressbar({ value: parseInt(data.progress) });
                if (data.title) { $("#progressbar-title").text(data.title); }
            });
        }, 500);

    });
Run Code Online (Sandbox Code Playgroud)
  • 进度正在数据库中正确更新
  • JS计时器试图获得进度,我可以在控制台中看到它,但是所有这些请求都加载了第一个脚本的整个持续时间,一旦脚本结束,这些ajax进程调用就被加载了

那么,为什么第二个AJAX调用等待第一个完成呢?

php ajax simultaneous progress-bar

12
推荐指数
1
解决办法
1万
查看次数

在 UITableViewCell 中展开 UITextView 高度(阅读更多效果)

我试图用动画扩展 UITextView,当用户点击它下面的阅读更多按钮时。

在此处输入图片说明

我尝试了很多方法并提出了几乎可行的解决方案:

func readMore() {
    self.tableView.beginUpdates()
    cell.descTextViewHeightConstraint.constant = cell.descTextView.expectedHeight()
    self.tableView.endUpdates()
}
Run Code Online (Sandbox Code Playgroud)

UI文本视图+高度

extension UITextView {
    func expectedHeight() -> CGFloat {
        let textView: UITextView = UITextView(frame: CGRect(x: 0, y: 0, width: self.frame.size.width, height: CGFloat.greatestFiniteMagnitude))
        textView.font = self.font
        textView.text = self.text
        textView.sizeToFit()
        return textView.frame.height
    }
}
Run Code Online (Sandbox Code Playgroud)

此解决方案有效,但有一个副作用 - 当动画完成时, UITableViewCell 中的某些元素被隐藏(标题标签)。

我还尝试在动画完成时调用 tableView.reloadData(),这可行,但有时也会产生副作用。

xcode animation uitableview ios swift

6
推荐指数
1
解决办法
2423
查看次数

SwiftUI TextField 前景色问题

我正在尝试进行实时电子邮件验证,但模拟器有奇怪的行为。当电子邮件无效时,它应该是红色的,当它有效时,文本的颜色应该是黑色,但有些字符保持红色。

struct EmailText: View {
    
    @State var textFieldValue: String = ""
    
    private func isValid(_ s: String) -> Bool {
        // not real validation function, just for simplicity
        return Int.random(in: 0 ... 1) == 1
    }
    
    var body: some View {
        TextField("", text: $textFieldValue)
            .foregroundColor(isValid(textFieldValue) ? .black : .red)
            .padding()
    }
}
Run Code Online (Sandbox Code Playgroud)

演示

编辑:我已将验证函数从正则表达式更新为简单条件,以排除正则表达式作为可能的问题。

swiftui

4
推荐指数
1
解决办法
622
查看次数

扩展 swift 可选的默认值

Optional我正在尝试使用默认值扩展 Swift 的类型。在 API 请求中提供空值应该会引发异常。我已经为该String类型完成了此操作,但无法使用该Integer类型获得相同的结果:

extension Optional where Wrapped == String {

    var unwrappedValue: String {

        get {
            switch self {

            case .some(let value):
                return value

            case .none:
                return ""
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Integer版本抛出以下内容Error

协议“Integer”只能用作通用约束,因为它具有 Self 或关联的类型要求

extension Optional where Wrapped == Integer {

    var unwrappedValue: Integer {

        get {
            switch self {

            case .some(let value):
                return value

            case .none:
                return 0
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

swift

2
推荐指数
1
解决办法
1443
查看次数